PHPOffice PhpSpreadsheet before 1.8.0 has an XXE issue.
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · NVD. Fix status from CNA and GitHub.
Summary
PHPOffice PhpSpreadsheet before 1.8.0 has an XXE issue. The XmlScanner decodes the sheet1.xml from an .xlsx to utf-8 if something else than UTF-8 is declared in the header. This was a security measurement to prevent CVE-2018-19277 but the fix is not sufficient. By double-encoding the the xml payload to utf-7 it is possible to bypass the check for the string ‚<!ENTITY‘ and thus allowing for an xml external entity processing (XXE) attack.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | — | all versions | — | No fix listed | CNA |
| — | phpoffice/phpspreadsheet (Packagist) | before 1.8.0 | 1.8.0 | Patch available | GHSA-vvwv-h69m-wg6f |
| — | phpoffice/phpexcel (Packagist) | up to 1.8.2 | — | No fix listed | GHSA-vvwv-h69m-wg6f |
- — Vendor— Affected all versions Fixed in — No fix listed CNA
- phpoffice/phpspreadsheet (Packagist) Vendor— Affected before 1.8.0 Fixed in 1.8.0 Patch available GHSA-vvwv-h69m-wg6f
- phpoffice/phpexcel (Packagist) Vendor— Affected up to 1.8.2 Fixed in — No fix listed GHSA-vvwv-h69m-wg6f
Remediation
- Fix · GHSA-vvwv-h69m-wg6f phpoffice/phpspreadsheet (Packagist) Fixed in 1.8.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2019-12331
- 2026-10-03 Alias added: GHSA-vvwv-h69m-wg6f
References
Advisory 2
Other 6
- https://github.com/PHPOffice/PhpSpreadsheet/pull/1041
- https://github.com/PHPOffice/PhpSpreadsheet/commit/0e6238c69e863b58aeece61e48ea032696c6dccd
- https://github.com/FriendsOfPHP/security-advisories/blob/master/phpoffice/phpspreadsheet/CVE-2019-12331.yaml
- https://github.com/PHPOffice/PhpSpreadsheet
- https://github.com/PHPOffice/PhpSpreadsheet/releases/tag/1.8.0
- https://herolab.usd.de/security-advisories/usd-2019-0046
More PHPOffice Phpspreadsheet vulnerabilities
- TI-2026-26406 PhpSpreadsheet SSRF and RCE via PHP stream wrappers in IOFactory::load CVSS 4.0CRITICAL 9.2
- TI-2024-37339 PhpSpreadsheet vulnerable to unauthorized reflected XSS in Currency.php file CVSS 4.0HIGH 8.3
- TI-2024-37338 PhpSpreadsheet allows unauthorized reflected XSS in `Convert-Online.php` file CVSS 4.0HIGH 8.3
- TI-2024-37325 PhpSpreadsheet vulnerable to unauthorized reflected XSS in the Accounting.php file CVSS 4.0HIGH 8.3
- TI-2024-37324 PhpSpreadsheet vulnerable to unauthorized reflected XSS in the constructor of the Downloader class CVSS 4.0HIGH 8.3
- TI-2024-30160 XML External Entity Reference (XXE) in PHPSpreadsheet CVSS 3.1HIGH 8.8
Sources
- CVE-2019-12331 · CVE Program
- CVE-2019-12331 · NVD
- FIRST EPSS
- GHSA-vvwv-h69m-wg6f · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences