CVE-2025-54370
published 2025-08-25CVE-2025-54370: PhpOffice/PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. Prior to versions 1.30.0, 2.1.12, 2.4.0, 3.10.0, and 5.0.0, SSRF can…
PriorityP349high8.7CVSS 4.0
AVNACLATNPRNUINVCHVINVANSCNSINSANEXCRXIRXARXMAVXMACXMATXMPRXMUIXMVCXMVIXMVAXMSCXMSIXMSAXSXAUXRXVXREXUX
EPSS
0.79%
53.9th percentile
PhpOffice/PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. Prior to versions 1.30.0, 2.1.12, 2.4.0, 3.10.0, and 5.0.0, SSRF can occur when a processed HTML document is read and displayed in the browser. The vulnerability lies in the setPath method of the PhpOffice\PhpSpreadsheet\Worksheet\Drawing class, where a crafted string from the user is passed to the HTML reader. This issue has been patched in versions 1.30.0, 2.1.12, 2.4.0, 3.10.0, and 5.0.0.
Affected
15 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| phpoffice | phpspreadsheet | < 1.30.0 | 1.30.0 |
| phpoffice | phpspreadsheet | — | — |
| phpoffice | phpspreadsheet | — | — |
| phpoffice | phpspreadsheet | — | — |
| phpoffice | phpspreadsheet | — | — |
| phpoffice | phpspreadsheet | >= 0 < 1.30.0 | 1.30.0 |
| phpoffice | phpspreadsheet | >= 0 < 1.30.6 | 1.30.6 |
| phpoffice | phpspreadsheet | >= 2.0.0 < 2.1.12 | 2.1.12 |
| phpoffice | phpspreadsheet | >= 2.0.0 < 2.1.18 | 2.1.18 |
| phpoffice | phpspreadsheet | >= 2.2.0 < 2.4.0 | 2.4.0 |
| phpoffice | phpspreadsheet | >= 2.2.0 < 2.4.7 | 2.4.7 |
| phpoffice | phpspreadsheet | >= 3.0.0 < 3.10.0 | 3.10.0 |
| phpoffice | phpspreadsheet | >= 3.3.0 < 3.10.7 | 3.10.7 |
| phpoffice | phpspreadsheet | >= 4.0.0 < 5.0.0 | 5.0.0 |
| phpoffice | phpspreadsheet | >= 4.0.0 < 5.8.1 | 5.8.1 |
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
PHPSpreadsheet: SSRF bypass via HTTP redirect in WEBSERVICE() domain whitelist
ghsa·2026-07-23
CVE-2026-59931 [HIGH] CWE-918 PHPSpreadsheet: SSRF bypass via HTTP redirect in WEBSERVICE() domain whitelist
PHPSpreadsheet: SSRF bypass via HTTP redirect in WEBSERVICE() domain whitelist
### Summary
The domain whitelist introduced in PhpSpreadsheet 5.4.0 for the `WEBSERVICE()` formula function can be bypassed via HTTP redirect. The whitelist validates only the initial URL's hostname, but `file_get_contents()` follows 302/301 redirects by default without re-validating the redirect target against the whitelist. This allows an attacker to reach internal services through a whitelisted domain that issues an HTTP redirect.
### Details
In `Calculation/Web/Service.php`, the `webService()` method validates the URL's host against a domain whitelist set via `Spreadsheet::setDomainWhiteList()`. If the host passes validation, the method calls `file_get_contents($url, false, $ctx)` to fetch the content.
OSV
PhpSpreadsheet vulnerable to SSRF when reading and displaying a processed HTML document in the browser
osv·2025-08-25
CVE-2025-54370 [HIGH] PhpSpreadsheet vulnerable to SSRF when reading and displaying a processed HTML document in the browser
PhpSpreadsheet vulnerable to SSRF when reading and displaying a processed HTML document in the browser
**Product:** PhpSpreadsheet
**Version:** 3.8.0
**CWE-ID:** CWE-918: Server-Side Request Forgery (SSRF)
**CVSS vector v.3.1:** 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)
**CVSS vector v.4.0:** 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N)
**Description:** SSRF occurs when a processed HTML document is read and displayed in the browser
**Impact:** Server-Side Request Forgery
**Vulnerable component:** the `PhpOffice\PhpSpreadsheet\Worksheet\Drawing` class, `setPath` method
**Exploitation conditions:** getting a string from the user that is passed to the HTML reader
**Mitigation:** improved processing of the `$path` variable of the `setPath` method of the `PhpOffice\PhpSpreadshe
GHSA
PhpSpreadsheet vulnerable to SSRF when reading and displaying a processed HTML document in the browser
ghsa·2025-08-25
CVE-2025-54370 [HIGH] CWE-918 PhpSpreadsheet vulnerable to SSRF when reading and displaying a processed HTML document in the browser
PhpSpreadsheet vulnerable to SSRF when reading and displaying a processed HTML document in the browser
**Product:** PhpSpreadsheet
**Version:** 3.8.0
**CWE-ID:** CWE-918: Server-Side Request Forgery (SSRF)
**CVSS vector v.3.1:** 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)
**CVSS vector v.4.0:** 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N)
**Description:** SSRF occurs when a processed HTML document is read and displayed in the browser
**Impact:** Server-Side Request Forgery
**Vulnerable component:** the `PhpOffice\PhpSpreadsheet\Worksheet\Drawing` class, `setPath` method
**Exploitation conditions:** getting a string from the user that is passed to the HTML reader
**Mitigation:** improved processing of the `$path` variable of the `setPath` method of the `PhpOffice\PhpSpreadshe
No detection rules found.
No public exploits indexed.
No writeups or analysis indexed.
https://github.com/PHPOffice/PhpSpreadsheet/commit/334a67797ace574d1d37c0992ffe283b7415471ahttps://github.com/PHPOffice/PhpSpreadsheet/commit/4050f14521d70634c3320b170236574a6106eb39https://github.com/PHPOffice/PhpSpreadsheet/commit/81a0de2261f698404587a6421a5c6eb263c40b31https://github.com/PHPOffice/PhpSpreadsheet/commit/ac4befd2f7ccc21a59daef606a02a3d1828ade09https://github.com/PHPOffice/PhpSpreadsheet/commit/c2cd0e64392438e4c6af082796eb65c1d629a266https://github.com/PHPOffice/PhpSpreadsheet/security/advisories/GHSA-rx7m-68vc-ppxh
2025-08-25
Published