CVE-2026-59931: PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. In versions 4.0.0 through 5.8.0, 3.3.0 through 3.10.6, 2.2.0 through 2.4.6, 2.0.0 through 2.1.17, an
PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. In versions 4.0.0 through 5.8.0, 3.3.0 through 3.10.6, 2.2.0 through 2.4.6, 2.0.0 through 2.1.17, and all releases up to and including 1.30.5, the WEBSERVICE() domain whitelist can be bypassed via an HTTP redirect (SSRF). In Calculation/Web/Service.php, the webService() method validates a URL's host against the whitelist set via Spreadsheet::setDomainWhiteList(), then fetches content with file_get_contents($url, false, $ctx); because PHP's HTTP stream wrapper follows 301/302 redirects automatically (up to 20 hops) and the redirect target is never re-validated, an attacker who can trigger a redirect from a whitelisted domain can reach arbitrary URLs, including internal addresses. An attacker able to upload XLSX files to an application that uses setDomainWhiteList() and getCalculatedValue() can achieve a full-read SSRF, returning up to 32,767 bytes of the response body as a cell's calculated value, which enables exfiltration of cloud metadata (AWS/GCP/Azure credentials via http://169.254.169.254/), access to internal-only services, and internal port scanning (the port is not validated). This issue has been fixed in versions 5.8.1, 3.10.7, 2.4.7, 2.1.18, and 1.30.6.
Details
Original advisory: https://nvd.nist.gov/vuln/detail/CVE-2026-59931
Exploitation outlook
EPSS (FIRST.org) estimates each CVE’s probability of exploitation in the next 30 days — here is the CSIRTS.com read on those numbers.
- Low exploitation riskCVE-2026-599310.53% 30-day exploitation probability — currently an unlikely target, but scores change as exploit code circulates. Riskier than 42% of all scored CVEs.
Referenced CVEs
| CVE | CSIRTS overview | External |
|---|---|---|
| CVE-2026-59931 | coverage & exploitation status | NVD · CVE.org |
Same CVEs, other sources
How other CERTs, PSIRTs and databases cover the vulnerabilities in this advisory.
Recent advisories for PhpSpreadsheet is a
A cluster of recent advisories against the same product widens the attack surface — attackers routinely chain freshly published CVEs on one product, so review these together.
- highCVE-2026-59932: PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. In versions 4.…nvd · 2026-07-28
- highCVE-2026-59933: PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. In versions 4.…nvd · 2026-07-28
- highGHSA-xh5m-36r6-47m3: PHPSpreadsheet: XLS/OLE sector-chain self-loop causes memory exhaustionghsa · 2026-07-23
- highGHSA-2mrg-gjxq-2gvr: PHPSpreadsheet: Gnumeric reader unbounded gzip expansion causes memory exhaustionghsa · 2026-07-23
- highGHSA-6hq5-7373-42rg: PHPSpreadsheet: SSRF bypass via HTTP redirect in WEBSERVICE() domain whitelistghsa · 2026-07-23
More from NVD Recent CVEs
- criticalCVE-2026-8457: The WooCommerce - Social Login plugin for WordPress is vulnerable to Authentication Bypass in a…2026-08-02
- highCVE-2026-18352: The User Access Manager plugin for WordPress is vulnerable to Directory Traversal in all versi…2026-08-02
- highCVE-2026-13339: The CubeWP Framework plugin for WordPress is vulnerable to Directory Traversal in all versions…2026-08-02
- unknownCVE-2026-17002: Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.2026-08-01
- unknownCVE-2026-18556: Authentication bypass using an alternate path or channel vulnerability in N-able N-central all…2026-08-01