CVE-2024-56408 PhpSpreadsheet allows unauthorized reflected XSS in `Convert-Online.php` file
Attackers can execute arbitrary scripts in user browsers via unsanitized input in the Convert-Online sample file of PhpSpreadsheet.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2024-56408?
CVE-2024-56408 is a high-severity cross-site scripting vulnerability in PHPOffice PhpSpreadsheet, published on 3 Jan 2025. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
PhpSpreadsheet is a PHP library for reading and writing spreadsheet files. Versions prior to 3.7.0, 2.3.5, 2.1.6, and 1.29.7 have no sanitization in the `/vendor/phpoffice/phpspreadsheet/samples/Engineering/Convert-Online.php` file, which leads to the possibility of a cross-site scripting attack. Versions 3.7.0, 2.3.5, 2.1.6, and 1.29.7 contain a patch for the issue.
Weakness: CWE-79
Which versions are affected by CVE-2024-56408?
10 open source packages ship an affected version, including phpoffice/phpspreadsheet and phpoffice/phpexcel. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
phpoffice/phpspreadsheet Packagist | All versions | 1.29.7 |
phpoffice/phpspreadsheet Packagist | All versions | 1.29.7 |
phpoffice/phpspreadsheet Packagist | From 2.0.0 | 2.1.6 |
phpoffice/phpspreadsheet Packagist | From 2.0.0 | 2.1.6 |
phpoffice/phpspreadsheet Packagist | From 2.2.0 | 2.3.5 |
phpoffice/phpspreadsheet Packagist | From 2.2.0 | 2.3.5 |
4 more packages
phpoffice/phpspreadsheet Packagist | From 3.0.0 | 3.7.0 |
phpoffice/phpspreadsheet Packagist | From 3.0.0 | 3.7.0 |
phpoffice/phpexcel Packagist | All versions to 1.8.2 | None |
phpoffice/phpexcel Packagist | All versions to 1.8.2 | None |
Products include Phpoffice Phpspreadsheet.
How do I fix CVE-2024-56408?
Upgrade phpoffice/phpspreadsheet to a fixed version for your release line: 1.29.7, 2.1.6, 2.3.5 or 3.7.0.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2024-56408 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2024-56408 exists.
Other vulnerabilities in PHPOffice PhpSpreadsheet
- CVE-2026-34084 PhpSpreadsheet SSRF and RCE via PHP stream wrappers in IOFactory::load
- CVE-2024-45048 XML External Entity Reference (XXE) in PHPSpreadsheet
- CVE-2019-12331 XXE in PHPSpreadsheet due to incomplete fix for previous encoding issue
- CVE-2018-19277 XXE in PHPSpreadsheet due to encoding issue
- CVE-2024-56365 PhpSpreadsheet vulnerable to unauthorized reflected XSS in the constructor of the Downloader class
Sources
Also known as GHSA-x88g-h956-m5xg.