CVE-2026-59931
Last modified
CVE-2026-59931 is a high-severity vulnerability rated 7.7/10 on the CVSS scale. 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). EPSS estimates a 0.53% chance of exploitation in the next 30 days.
Description
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.
Metrics
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| PHPOffice | PhpSpreadsheet | >= 4.0.0, < 5.8.1; >= 3.3.0, < 3.10.7; >= 2.2.0, < 2.4.7; >= 2.0.0, < 2.1.18; < 1.30.6 |
References
Timeline
- Published
- Last Modified
- Status
- Deferred
Frequently Asked Questions
What is CVE-2026-59931?
How severe is CVE-2026-59931?
How do I fix CVE-2026-59931?
How Strix Helps
- One Click Account Takeover in GranolaHow a notification link broke out of Electron and led to a one-click account takeover.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-59926Mistune is a Python Markdown parser with renderers and plugi…6.1
- CVE-2026-59927Mistune is a Python Markdown parser with renderers and plugi…5.3
- CVE-2026-59928Mistune is a Python Markdown parser with renderers and plugi…7.5
- CVE-2026-59929Mistune is a Python Markdown parser with renderers and plugi…6.1
- CVE-2026-5993A vulnerability was identified in Totolink A7100RU 7.4cu.231…9.8
- CVE-2026-59930Mistune is a Python Markdown parser with renderers and plugi…4.3
- CVE-2026-59932PhpSpreadsheet is a pure PHP library for reading and writing…7.5
- CVE-2026-59933PhpSpreadsheet is a pure PHP library for reading and writing…7.5
- CVE-2026-59935pypdf is a free and open-source pure-python PDF library. Pri…7.5
- CVE-2026-59936pypdf is a free and open-source pure-python PDF library. Pri…7.5
- CVE-2026-59937pypdf is a free and open-source pure-python PDF library. Pri…7.5
- CVE-2026-59938pypdf is a free and open-source pure-python PDF library. Pri…5.3
Are you affected by CVE-2026-59931?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
