Loading...
Skip to main content

CVE-2023-23924 — Vulnerability in dompdf/dompdf — CVE Details

CRITICAL

Dompdf vulnerable to URI validation failure on SVG parsing

Published February 1, 2023Updated September 10, 2026Source: osv

Summary

### Summary The URI validation on dompdf 2.0.1 can be bypassed on SVG parsing by passing `<image>` tags with uppercase letters. This might leads to arbitrary object unserialize on PHP < 8, through the `phar` URL wrapper. ### Details The bug occurs during SVG parsing of `<image>` tags, in src/Image/Cache.php : ``` if ($type === "svg") { $parser = xml_parser_create("utf-8"); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false); xml_set_element_handler( $parser, function ($parser, $name, $attributes) use ($options, $parsed_url, $full_url) { if ($name === "image") { $attributes = array_change_key_case($attributes, CASE_LOWER); ``` This part will try to detect `<image>` tags in SVG, and will take the href to validate it against the protocolAllowed whitelist. However, the `$name comparison with "image" is case sensitive, which means that such a tag in the SVG will pass : ``` <svg> <Image xlink:href="phar:///foo"></Image> </svg> ``` As the tag is named "Image" and not "image", it will not pass the condition to trigger the check. A correct solution would be to strtolower the `$name` before the check : ``` if (strtolower($name) === "image") { ``` ### PoC Parsing the following SVG file is sufficient to reproduce the vulnerability : ``` <svg> <Image xlink:href="phar:///foo"></Image> </svg> ``` ### Impact An attacker might be able to exploit the vulnerability to call arbitrary URL with arbitrary protocols, if they can provide a SVG file to dompdf. In PHP versions before 8.0.0, it leads to arbitrary unserialize, that will leads at the very least to an arbitrary file deletion, and might leads to remote code execution, depending on classes that are available.

Advisory Timeline

  • First published February 1, 2023 (1350 days ago).
  • Last revised September 10, 2026 — 1317 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Composer
Update dompdf/dompdf to 2.0.2 or later
composer require "dompdf/dompdf:^2.0.2"

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: packagist (1).

PackageEcosystemAffectedFixed In
dompdf/dompdf
packagist
v0.6.0, v0.6.1, v0.6.2, v0.7.0 (+20 more)2.0.2

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 10.0 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
Low
Availability
High

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:H

Frequently Asked Questions

What is CVE-2023-23924?
Dompdf vulnerable to URI validation failure on SVG parsing This vulnerability has been assigned a severity rating of CRITICAL (CVSS score: 10.0/10).
How do I check if my project is affected by CVE-2023-23924?
CVE-2023-23924 affects dompdf/dompdf. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2023-23924 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
10.0

Exploitation is straightforward and causes maximum impact. Patch immediately.

Also Known As

GHSA-3cw5-7cxw-v5qg

Related CVEs

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies