// For flags

CVE-2024-47873

PhpSpreadsheet XmlScanner bypass leads to XXE

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, prior to versions 1.9.4, 2.1.3, 2.3.2, and 3.4.0, the regexes used in the `scan` method and the findCharSet method can be bypassed by using UCS-4 and encoding guessing. 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
Poc
Automatable
Yes
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-10-04 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