# CVE-2019-12331: XXE in PHPSpreadsheet due to incomplete fix for previous encoding issue

Source: https://junglewise.ai/threats/cve-2019-12331-xxe-in-phpspreadsheet-due-to-incomplete-fix-for-previous-encoding  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2019-11-20  
License: CC BY 4.0 with a link back

CVE-2019-12331 · Severity: low · CVSS 3.1 · Published 2019-11-20

XXE in PHPSpreadsheet due to incomplete fix for previous encoding issue

Technologies: [phpoffice/phpexcel (Packagist)](https://junglewise.ai/threats/technologies/phpoffice-phpexcel), [phpoffice/phpspreadsheet (Packagist)](https://junglewise.ai/threats/technologies/phpoffice-phpspreadsheet). Vendors: [Packagist](https://junglewise.ai/threats/vendors/packagist).

## Quick answers

**Is CVE-2019-12331 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2019-12331 being exploited in the wild.

**How severe is CVE-2019-12331?** Low severity, with a CVSS score of 3.1, published 20 November 2019.

**Which products and versions are affected?** phpoffice/phpexcel (Packagist) ECOSYSTEM:introduced=0,last_affected=1.8.2; phpoffice/phpspreadsheet (Packagist) ECOSYSTEM:introduced=0,fixed=1.8.0.

**Is there a fix for CVE-2019-12331?** Yes. phpoffice/phpspreadsheet (Packagist): upgrade to 1.8.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**Am I affected by CVE-2019-12331?** Check whether you run phpoffice/phpexcel (Packagist) or phpoffice/phpspreadsheet (Packagist) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- phpoffice/phpspreadsheet (Packagist): upgrade to 1.8.0 or later

  ```sh
  composer require phpoffice/phpspreadsheet:^1.8.0
  ```


## Affected products

- phpoffice/phpexcel (Packagist) ECOSYSTEM:introduced=0,last_affected=1.8.2
- phpoffice/phpspreadsheet (Packagist) ECOSYSTEM:introduced=0,fixed=1.8.0

## Identifiers

- CVE-2019-12331
- GHSA-vvwv-h69m-wg6f

## Related threats

- [PHPOffice PhpSpreadsheet redirect validation bypass in external image loading](https://junglewise.ai/threats/cve-2026-108360-phpspreadsheet-is-a-pure-php-library-for-reading-and-writing)
- [PhpSpreadsheet denial-of-service via unbounded row repetition](https://junglewise.ai/threats/cve-2026-108359-phpspreadsheet-is-a-pure-php-library-for-reading-and-writing)
- [PhpSpreadsheet XmlScanner XML entity expansion denial of service](https://junglewise.ai/threats/cve-2026-108358-phpspreadsheet-is-a-pure-php-library-for-reading-and-writing)
- [PHPOffice PhpSpreadsheet XML entity expansion denial of service](https://junglewise.ai/threats/cve-2026-108357-phpspreadsheet-is-a-pure-php-library-for-reading-and-writing)
- [PHPOffice PhpSpreadsheet denial of service via Gnumeric gzip expansion](https://junglewise.ai/threats/cve-2026-59932-phpoffice-phpspreadsheet-denial-of-service-via-gnumeric-gzip)
