CVE-2024-48917 XXE in PHPSpreadsheet's XLSX reader

High 7.5 Published Updated

An attacker can bypass XML sanitization in PHPSpreadsheet to perform XML External Entity attacks, potentially reading sensitive files or executing code.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2024-48917?

CVE-2024-48917 is a high-severity vulnerability in PHPOffice PhpSpreadsheet, published on 18 Nov 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

PhpSpreadsheet is a PHP library for reading and writing spreadsheet files. The `XmlScanner` class has a scan method which should prevent XXE attacks. However, in a bypass of the previously reported `CVE-2024-47873`, the regexes from the `findCharSet` method, which is used for determining the current encoding can be bypassed by using a payload in the encoding UTF-7, and adding at end of the file a comment with the value `encoding="UTF-8"` with `"`, which is matched by the first regex, so that `encoding='UTF-7'` with single quotes `'` in the XML header is not matched by the second regex. An attacker can bypass the sanitizer and achieve an XML external entity attack. Versions 1.9.4, 2.1.3, 2.3.2, and 3.4.0 fix the issue.

Weakness: CWE-611

Which versions are affected by CVE-2024-48917?

10 open source packages ship an affected version, including phpoffice/phpspreadsheet and phpoffice/phpexcel. It affects 1 product.

PackageAffectedFixed in
phpoffice/phpspreadsheet PackagistAll versions1.29.4
phpoffice/phpspreadsheet PackagistAll versions1.29.4
phpoffice/phpspreadsheet PackagistFrom 2.0.02.1.3
phpoffice/phpspreadsheet PackagistFrom 2.0.02.1.3
phpoffice/phpspreadsheet PackagistFrom 2.2.02.3.2
phpoffice/phpspreadsheet PackagistFrom 2.2.02.3.2
4 more packages
phpoffice/phpspreadsheet PackagistFrom 3.3.03.4.0
phpoffice/phpspreadsheet PackagistFrom 3.3.03.4.0
phpoffice/phpexcel PackagistAll versions to 1.8.2None
phpoffice/phpexcel PackagistAll versions to 1.8.2None

Products include Phpoffice Phpspreadsheet.

How do I fix CVE-2024-48917?

Upgrade phpoffice/phpspreadsheet to a fixed version for your release line: 1.29.4, 2.1.3, 2.3.2 or 3.4.0.

Is CVE-2024-48917 being exploited?

There is no known exploitation of CVE-2024-48917 in the wild and no public exploit code.

Sources

Also known as GHSA-7cc9-j4mv-vcjp.

Is CVE-2024-48917 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free