Skip to content
OpenAdvisories
High · 7.5 CVE-2024-47873 EUVD-2024-3279GHSA-jw4x-v69f-hh5w

PhpSpreadsheet XmlScanner bypass leads to XXE

Published Nov 18, 2024 · Updated Nov 18, 2024 · Assigned by GitHub_M

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, prior to versions 1.9.4, 2.1.3, 2.3.2, and 3.4.0, the regexes used in the `scan` method and the findCharSet method can be bypassed by using UCS-4 and encoding guessing. 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.

Affected products

VendorProductAffectedFixed
PHPOffice PhpSpreadsheet < 1.29.4, >= 2.0.0, < 2.1.3, >= 2.2.0, < 2.3.2, >= 3.3.0, < 3.4.0 —

Affected packages

EcosystemPackageAffectedFixedRecord
Packagist phpoffice/phpexcel <= 1.8.2 — GHSA-jw4x-v69f-hh5w
Packagist phpoffice/phpspreadsheet < 1.29.4 1.29.4 GHSA-jw4x-v69f-hh5w
Packagist phpoffice/phpspreadsheet >= 2.0.0, < 2.1.3 2.1.3 GHSA-jw4x-v69f-hh5w
Packagist phpoffice/phpspreadsheet >= 2.2.0, < 2.3.2 2.3.2 GHSA-jw4x-v69f-hh5w
Packagist phpoffice/phpspreadsheet >= 3.3.0, < 3.4.0 3.4.0 GHSA-jw4x-v69f-hh5w

References