CVE-2019-12331: XEE

Published Jul 1, 2019
·
Updated

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.

Other sources

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.

Affected Software

5 affected componentsFixes available
composer/phpoffice/phpspreadsheet<1.8.0
PHPOffice phpspreadsheet<1.8.0
Phpspreadsheet Project Phpspreadsheet<1.8.0
composer/phpoffice/phpexcel<=1.8.2
composer/phpoffice/phpspreadsheet<1.8.0
1.8.0

Event History

Jul 1, 2019
Advisory Published
12:55 PM
Nov 7, 2019
CVE Published
via MITRE·02:03 PM
Data Sourced
via MITRE·02:03 PM
Description
Data Sourced
via NVD·03:15 PM
DescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is CVE-2019-12331?

CVE-2019-12331 is an XXE vulnerability in PHPOffice PhpSpreadsheet before version 1.8.0.

2

How severe is CVE-2019-12331?

CVE-2019-12331 has a severity rating of 8.8 (High).

3

What is affected by CVE-2019-12331?

PHPOffice PhpSpreadsheet versions before 1.8.0 are affected by CVE-2019-12331.

4

How can CVE-2019-12331 be fixed?

To fix CVE-2019-12331, update PHPOffice PhpSpreadsheet to version 1.8.0 or later.

5

Where can I find more information about CVE-2019-12331?

More information about CVE-2019-12331 can be found at the following references: [GitHub Pull Request](https://github.com/PHPOffice/PhpSpreadsheet/pull/1041), [NVD](https://nvd.nist.gov/vuln/detail/CVE-2019-12331), [CHANGELOG.md](https://github.com/PHPOffice/PhpSpreadsheet/blob/master/CHANGELOG.md#180---2019-07-01).

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203