CVE-2024-45292 PhpSpreadsheet HTML writer is vulnerable to Cross-Site Scripting via JavaScript hyperlinks
Attackers can execute arbitrary JavaScript in browsers by injecting malicious hyperlinks into spreadsheets generated by the PhpSpreadsheet HTML writer.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2024-45292?
CVE-2024-45292 is a medium-severity cross-site scripting vulnerability in PHPOffice PhpSpreadsheet, published on 7 Oct 2024. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Official description
PHPSpreadsheet is a pure PHP library for reading and writing spreadsheet files. `\PhpOffice\PhpSpreadsheet\Writer\Html` does not sanitize "javascript:" URLs from hyperlink `href` attributes, resulting in a Cross-Site Scripting vulnerability. This issue has been addressed in release versions 1.29.2, 2.1.1, and 2.3.0. All users are advised to upgrade. There are no known workarounds for this vulnerability.
Weakness: CWE-79
Which versions are affected by CVE-2024-45292?
8 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.2 |
phpoffice/phpspreadsheet Packagist | All versions | 1.29.2 |
phpoffice/phpspreadsheet Packagist | From 2.0.0 | 2.1.1 |
phpoffice/phpspreadsheet Packagist | From 2.0.0 | 2.1.1 |
phpoffice/phpspreadsheet Packagist | From 2.2.0 | 2.3.0 |
phpoffice/phpspreadsheet Packagist | From 2.2.0 | 2.3.0 |
2 more packages
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-45292?
Upgrade phpoffice/phpspreadsheet to a fixed version for your release line: 1.29.2, 2.1.1 or 2.3.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-45292 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2024-45292 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-r8w8-74ww-j4wh.