p PatchFirst

CVE-2026-40863

CVE-2026-40863 · PhpSpreadsheet: CPU Denial of Service via Unbounded Row Index in SpreadsheetML XML Reader

This page contains facts from public vulnerability sources. Check the original advisory before updating.

PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. Prior to 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0, the SpreadsheetML XML reader (Reader\Xml) does not validate the ss:Index row attribute against the maximum allowed row count (AddressRange::MAX_ROW = 1,048,576). An attacker can craft a SpreadsheetML XML file with ss:Index="999999999" on a <Row> element, which inflates the internal cachedHighestRow to ~1 billion. Any subsequent call to getRowIterator() without an explicit end row will attempt to iterate ~1 billion rows, causing CPU exhaustion and denial of service. This vulnerability is fixed in 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0.

CVSS 7.5 · High · EPSS 0.5% · Fix available

Published
Updated

Stack: php

Affected products and versions

  • phpspreadsheet

    Versions
    • < 1.30.4: Affected
    • >= 2.0.0, < 2.1.16: Affected
    • >= 2.2.0, < 2.4.5: Affected
    • >= 3.3.0, < 3.10.5: Affected
    • >= 4.0.0, < 5.7.0: Affected

    No fix published

  • phpoffice/phpspreadsheet Packagist

    Versions
    • 4.0.0
    • 4.1.0
    • 4.2.0
    • 4.3.0
    • 4.3.1
    • 4.4.0
    • 4.5.0
    • 5.0.0
    • 5.1.0
    • 5.2.0
    • 5.3.0
    • 5.4.0
    • 5.5.0
    • 5.6.0
    Affected ranges
    • ECOSYSTEM: ≥ 4.0.0, < 5.7.0

    Update to 5.7.0

  • phpoffice/phpspreadsheet Packagist

    Versions
    • 3.10.0
    • 3.10.1
    • 3.10.2
    • 3.10.3
    • 3.10.4
    • 3.3.0
    • 3.4.0
    • 3.5.0
    • 3.6.0
    • 3.7.0
    • 3.8.0
    • 3.9.0
    • 3.9.1
    • 3.9.2
    • 3.9.3
    Affected ranges
    • ECOSYSTEM: ≥ 3.3.0, < 3.10.5

    Update to 3.10.5

  • phpoffice/phpspreadsheet Packagist

    Versions
    • 2.2.0
    • 2.2.1
    • 2.2.2
    • 2.3.0
    • 2.3.10
    • 2.3.2
    • 2.3.3
    • 2.3.4
    • 2.3.5
    • 2.3.6
    • 2.3.7
    • 2.3.8
    • 2.3.9
    • 2.4.0
    • 2.4.1
    • 2.4.2
    • 2.4.3
    • 2.4.4
    Affected ranges
    • ECOSYSTEM: ≥ 2.2.0, < 2.4.5

    Update to 2.4.5

  • phpoffice/phpspreadsheet Packagist

    Versions
    • 2.0.0
    • 2.1.0
    • 2.1.1
    • 2.1.10
    • 2.1.11
    • 2.1.12
    • 2.1.13
    • 2.1.14
    • 2.1.15
    • 2.1.3
    • 2.1.4
    • 2.1.5
    • 2.1.6
    • 2.1.7
    • 2.1.8
    • 2.1.9
    Affected ranges
    • ECOSYSTEM: ≥ 2.0.0, < 2.1.16

    Update to 2.1.16

  • phpoffice/phpspreadsheet Packagist

    Versions
    • 1.0.0
    • 1.0.0-beta
    • 1.0.0-beta2
    • 1.1.0
    • 1.10.0
    • 1.10.1
    • 1.11.0
    • 1.12.0
    • 1.13.0
    • 1.14.0
    • 1.14.1
    • 1.15.0
    • 1.16.0
    • 1.17.0
    • 1.17.1
    • 1.18.0
    • 1.19.0
    • 1.2.0
    • 1.2.1
    • 1.20.0
    • 1.21.0
    • 1.22.0
    • 1.23.0
    • 1.24.0
    • 1.24.1
    • 1.25.0
    • 1.25.1
    • 1.25.2
    • 1.26.0
    • 1.27.0
    • 1.27.1
    • 1.28.0
    • 1.29.0
    • 1.29.1
    • 1.29.10
    • 1.29.11
    • 1.29.12
    • 1.29.2
    • 1.29.4
    • 1.29.5
    • 1.29.6
    • 1.29.7
    • 1.29.8
    • 1.29.9
    • 1.3.0
    • 1.3.1
    • 1.30.0
    • 1.30.1
    • 1.30.2
    • 1.30.3
    • 1.4.0
    • 1.4.1
    • 1.5.0
    • 1.5.1
    • 1.5.2
    • 1.6.0
    • 1.7.0
    • 1.8.0
    • 1.8.1
    • 1.8.2
    • 1.9.0
    Affected ranges
    • ECOSYSTEM: < 1.30.4

    Update to 1.30.4

Original sources

Check your server →