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

Published Oct 22, 2026
·
Updated

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 LIBXMLNOENT is enabled. This issue is fixed in versions 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0.

Affected Software

1 affected component
composer/phpoffice/phpspreadsheet<1.30.7, <2.1.19, <2.4.8, <3.10.8, <5.10.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade PhpSpreadsheet to a version that resolves this vulnerability.

    Fixed in 1.30.7
  2. Upgrade

    Upgrade PhpSpreadsheet to a version that resolves this vulnerability.

    Fixed in 2.1.19
  3. Upgrade

    Upgrade PhpSpreadsheet to a version that resolves this vulnerability.

    Fixed in 2.4.8
  4. Upgrade

    Upgrade PhpSpreadsheet to a version that resolves this vulnerability.

    Fixed in 3.10.8
  5. Upgrade

    Upgrade PhpSpreadsheet to a version that resolves this vulnerability.

    Fixed in 5.10.0

Event History

Oct 22, 2026
CVE Published
via MITRE·05:29 PM
Data Sourced
via MITRE·05:29 PM
DescriptionWeakness

Frequently Asked Questions

1

Which applications are exposed to the most serious impacts?

Applications that use PhpSpreadsheet to process attacker-controlled XLSX files are exposed to entity-expansion denial of service on supported PHP versions. Local file access and SSRF are additionally possible on PHP versions before 8.0 or when LIBXML_NOENT is enabled.

2

What must an attacker provide to exploit this issue?

An attacker needs to supply an XLSX file that the application processes with an affected PhpSpreadsheet version. The XLSX XML parts can use ISO-2022 escape sequences to hide a DOCTYPE declaration from XmlScanner before XML charset normalization exposes it to the parser.

3

Are installations using a default XML-entity configuration affected?

Entity-expansion denial of service can occur on supported PHP versions when processing a malicious XLSX. The local-file-access and SSRF impacts require either PHP before 8.0 or LIBXML_NOENT to be enabled.

4

Which versions contain the fix?

The issue is fixed in PhpSpreadsheet versions 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0. Use the applicable fixed release for the version line deployed.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203