p PatchFirst

CVE-2026-59941

CVE-2026-59941 · Dompdf: Uncontrolled resource consumption based on declared BMP dimensions

This page contains facts from public vulnerability sources. Check the original advisory before updating.

Dompdf is an HTML to PDF converter for PHP. Versions 3.15 and prior accept a BMP image and generates a PDF-compatible PNG based only on its declared header dimensions and never bounds width × height before the image is converted through GD. A 58-byte BMP whose header declares e.g. 6000×6000 is accepted and later drives imagecreatetruecolor($width, $height) (and PHP's native BMP decoder) to allocate the full pixel canvas. A payload can fit in a single HTTP request: the BMP can be inlined as a data:image/bmp;base64,… URI inside attacker-controlled HTML, so no upload, no remote fetch, and no chroot-reachable file is required. I measured a 169-byte request driving a dompdf render to ~412 MB peak RSS and ~4.8 s of CPU/wall time, versus ~34 MB for an identically-sized benign request — roughly a 12× memory amplification per request, repeatable and unauthenticated. This issue has been fixed in version 3.16.

CVSS 6.3 · Medium · EPSS 0.6% · Fix available

Published
Updated

Stack: system · php

Affected products and versions

  • dompdf

    Versions
    • < 3.1.6: Affected

    No fix published

  • php-dompdf Debian:12

    Versions
    • 2.0.3+dfsg-1
    • 2.0.3+dfsg-1+deb12u1
    • 2.0.3+dfsg-2
    • 2.0.3+dfsg-3
    • 2.0.3+dfsg-4
    • 2.0.4+dfsg-1
    • 2.0.4+dfsg-2
    • 2.0.7+dfsg-1
    • 3.0.0+dfsg-1
    • 3.0.0+dfsg-2
    • 3.0.1+dfsg-1
    • 3.0.2+dfsg-1
    • 3.1.0+dfsg-1
    • 3.1.4+dfsg-1
    • 3.1.4+dfsg-2
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • dompdf/dompdf Packagist

    Versions
    • v0.6.0
    • v0.6.1
    • v0.6.2
    • v0.7.0
    • v0.7.0-beta
    • v0.7.0-beta2
    • v0.7.0-beta3
    • v0.8.0
    • v0.8.1
    • v0.8.2
    • v0.8.3
    • v0.8.4
    • v0.8.5
    • v0.8.6
    • v1.0.0
    • v1.0.1
    • v1.0.2
    • v1.1.0
    • v1.1.1
    • v1.2.0
    • v1.2.1
    • v1.2.2
    • v2.0.0
    • v2.0.1
    • v2.0.2
    • v2.0.3
    • v2.0.4
    • v2.0.5
    • v2.0.7
    • v2.0.8
    • v3.0.0
    • v3.0.1
    • v3.0.2
    • v3.1.0
    • v3.1.1
    • v3.1.2
    • v3.1.3
    • v3.1.4
    • v3.1.5
    Affected ranges
    • ECOSYSTEM: < 3.1.6

    Update to 3.1.6

  • php-dompdf Ubuntu:Pro:16.04:LTS

    Versions
    • 0.6.1+dfsg-2
    • 0.6.1+dfsg-2build1
    • 0.6.1+dfsg-2ubuntu1
    • 0.6.1+dfsg-2ubuntu1+esm1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • php-dompdf Ubuntu:Pro:18.04:LTS

    Versions
    • 0.6.2+dfsg-3
    • 0.6.2+dfsg-3ubuntu0.18.04.1~esm1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • php-dompdf Ubuntu:20.04:LTS

    Versions
    • 0.6.2+dfsg-3
    • 0.6.2+dfsg-3ubuntu0.20.04.1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • php-dompdf Ubuntu:22.04:LTS

    Versions
    • 0.6.2+dfsg-3.1
    • 0.6.2+dfsg-3.1ubuntu0.1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

Original sources

Check your server →