CVE-2024-45291

Public Exploit
Path traversal and Server-Side Request Forgery in HTML writer when embedding images is enabled in PHPSpreadsheet

Description

PHPSpreadsheet is a pure PHP library for reading and writing spreadsheet files. It's possible for an attacker to construct an XLSX file that links images from arbitrary paths. When embedding images has been enabled in HTML writer with `$writer->setEmbedImages(true);` those files will be included in the output as `data:` URLs, regardless of the file's type. Also URLs can be used for embedding, resulting in a Server-Side Request Forgery vulnerability. When embedding images has been enabled, an attacker can read arbitrary files on the server and perform arbitrary HTTP GET requests. Note that any PHP protocol wrappers can be used, meaning that if for example the `expect://` wrapper is enabled, also remote code execution is possible. 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.

Categories

6.3
CVSS
Severity: Medium
CVSS 3.1 •
EPSS 0.34%
Third-Party Advisory github.com
Affected: PHPOffice PhpSpreadsheet
Published at:
Updated at:

References

Frequently Asked Questions

What is the severity of CVE-2024-45291?
CVE-2024-45291 has been scored as a medium severity vulnerability.
How to fix CVE-2024-45291?
To fix CVE-2024-45291, make sure you are using an up-to-date version of the affected component(s) by checking the vendor release notes. As for now, there are no other specific guidelines available.
Is CVE-2024-45291 being actively exploited in the wild?
It is possible that CVE-2024-45291 is being exploited or will be exploited in a near future based on public information. According to its EPSS score, there is a ~0% probability that this vulnerability will be exploited by malicious actors in the next 30 days.
What software or system is affected by CVE-2024-45291?
CVE-2024-45291 affects PHPOffice PhpSpreadsheet.
This platform uses data from the NIST NVD, MITRE CVE, MITRE CWE, First.org and CISA KEV but is not endorsed or certified by these entities. CVE is a registred trademark of the MITRE Corporation and the authoritative source of CVE content is MITRE's CVE web site. CWE is a registred trademark of the MITRE Corporation and the authoritative source of CWE content is MITRE's CWE web site.
© 2025 Under My Watch. All Rights Reserved.