// For flags

CVE-2024-48917

XXE in PHPSpreadsheet's XLSX reader

Severity Score

7.5
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Attend
*SSVC
Descriptions

PhpSpreadsheet is a PHP library for reading and writing spreadsheet files. The `XmlScanner` class has a scan method which should prevent XXE attacks. However, in a bypass of the previously reported `CVE-2024-47873`, the regexes from the `findCharSet` method, which is used for determining the current encoding can be bypassed by using a payload in the encoding UTF-7, and adding at end of the file a comment with the value `encoding="UTF-8"` with `"`, which is matched by the first regex, so that `encoding='UTF-7'` with single quotes `'` in the XML header is not matched by the second regex. An attacker can bypass the sanitizer and achieve an XML external entity attack. Versions 1.9.4, 2.1.3, 2.3.2, and 3.4.0 fix the issue.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:Attend
Exploitation
None
Automatable
Yes
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-10-09 CVE Reserved
  • 2024-11-18 CVE Published
  • 2024-11-18 CVE Updated
  • 2024-11-19 EPSS Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-611: Improper Restriction of XML External Entity Reference
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
PHPOffice
Search vendor "PHPOffice"
PhpSpreadsheet
Search vendor "PHPOffice" for product "PhpSpreadsheet"
< 1.29.4
Search vendor "PHPOffice" for product "PhpSpreadsheet" and version " < 1.29.4"
en
Affected
PHPOffice
Search vendor "PHPOffice"
PhpSpreadsheet
Search vendor "PHPOffice" for product "PhpSpreadsheet"
>= 2.0.0 < 2.1.3
Search vendor "PHPOffice" for product "PhpSpreadsheet" and version " >= 2.0.0 < 2.1.3"
en
Affected
PHPOffice
Search vendor "PHPOffice"
PhpSpreadsheet
Search vendor "PHPOffice" for product "PhpSpreadsheet"
>= 2.2.0 < 2.3.2
Search vendor "PHPOffice" for product "PhpSpreadsheet" and version " >= 2.2.0 < 2.3.2"
en
Affected
PHPOffice
Search vendor "PHPOffice"
PhpSpreadsheet
Search vendor "PHPOffice" for product "PhpSpreadsheet"
>= 3.3.0 < 3.4.0
Search vendor "PHPOffice" for product "PhpSpreadsheet" and version " >= 3.3.0 < 3.4.0"
en
Affected