{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "cpe": "cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:*",
            "extracted_events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "1.30.4"
              },
              {
                "introduced": "2.0.0"
              },
              {
                "fixed": "2.1.16"
              },
              {
                "introduced": "2.2.0"
              },
              {
                "fixed": "2.4.5"
              },
              {
                "introduced": "3.3.0"
              },
              {
                "fixed": "3.10.5"
              },
              {
                "introduced": "4.0.0"
              },
              {
                "fixed": "5.7.0"
              }
            ],
            "source": "CPE_RANGE"
          },
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "02970383cc12e7bf0bc0707ea6e2e8ed23a7aec9"
            },
            {
              "introduced": "4a77798f835119754961a97714f135826a323caa"
            },
            {
              "fixed": "c91ff54b743e3f70f880e7145a9821474cd82f16"
            },
            {
              "introduced": "b0993b7e4d9c860133365d115b176bc6e0f57022"
            },
            {
              "fixed": "ec7815be350e03df90f3e2ace92653fa6cb4327c"
            },
            {
              "introduced": "87ddd21eb0b6b7ad20a11d314348ef307475f547"
            },
            {
              "fixed": "13f709c73e417c3c8cadc87ac88f809fd8d1fa45"
            },
            {
              "introduced": "2d4b9f3582102aafb6b1378fff8a20eeeacfb31c"
            },
            {
              "fixed": "9f55d3b9b7bcb1084fda8340e4b7ce4ed10cd0c8"
            }
          ],
          "repo": "https://github.com/phpoffice/phpspreadsheet",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-84wq-86v6-x5j6"
  ],
  "database_specific": {
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
      "CWE-770"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40863.json"
  },
  "details": "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 \u003cRow\u003e 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.",
  "id": "CVE-2026-40863",
  "modified": "2026-07-08T05:36:36.117155937Z",
  "published": "2026-05-12T22:04:29.510Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40863.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/PHPOffice/PhpSpreadsheet/security/advisories/GHSA-84wq-86v6-x5j6"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-40863"
    }
  ],
  "schema_version": "1.7.5",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "PhpSpreadsheet: CPU Denial of Service via Unbounded Row Index in SpreadsheetML XML Reader"
}