CVE-2026-108358

PhpSpreadsheet: XmlScanner Bypass via ISO-2022 Escape Sequences Allows XXE and Denial of Service

State
Published
Severity
8.8 High
Published
Oct 22, 2026
Updated
Oct 23, 2026
Reserved
Oct 9, 2026

Read the record on cve.org

Description

PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. Prior to 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0, XmlScanner::scan in src/PhpSpreadsheet/Reader/Security/XmlScanner.php uses a DOCTYPE detection pattern that accounts for NUL-byte interleaving but not ISO-2022 escape sequences in XLSX XML parts. The escape sequences prevent the scanner from matching the declaration, and XML charset normalization then removes the escape bytes before parsing, exposing a valid DOCTYPE and entity definitions. Processing an attacker-controlled XLSX can therefore cause entity-expansion denial of service on supported PHP versions and can permit local file access or SSRF on PHP before 8.0 or when LIBXML_NOENT is enabled. This issue is fixed in versions 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0.

Scores

CVSSScoreVectorSource
4.08.8 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H/SC:L/SI:N/SA:NGitHub_M

Weaknesses

  • CWE-611 Improper Restriction of XML External Entity Reference
  • CWE-776 Improper Restriction of Recursive Entity References in DTDs ('XML Entity Expansion')

Affected Products

ProductVersions
PhpSpreadsheetPHPOffice
  • < 1.30.7Affected
  • >= 2.0.0, < 2.1.19Affected
  • >= 2.2.0, < 2.4.8Affected
  • >= 3.3.0, < 3.10.8Affected
  • >= 4.0.0, < 5.10.0Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.