Zero Radar
← feed
HighVulnerabilityCVE-2026-108357updated 27 Oct 2026, 15:38 UTC

PhpSpreadsheet: crafted spreadsheet XML can bypass security check

A specially crafted spreadsheet file can slip past the library's safety check. This can make the server hang or read files it should not, which is a common way attackers reach data on a server.

Fix availableOfficial, 2 sources
SeverityHighCVSS 8.8 of 10
Being exploited?UnclearNo reports either way yet
Fix available?Yesphpoffice/phpspreadsheet 5.10.0 (for 5.x line); 3.10.8 (for 3.x line) · since 27 Oct 2026
How sure is this?Official, 2 sourcesBacked by an official source

How the attack works simplified

  1. 1Attacker crafts fileDouble-encoded entity hides DOCTYPE
  2. 2Library scans inputCheck runs before decoding, misses DOCTYPE
  3. 3XML parser runsHidden entity declarations are now active
  4. 4Impact on serverDoS, local file read or internal requests
  5. ResultServer hangs, leaks files, or makes internal requests

What happened

In the SpreadsheetML XML reader, double-encoded numeric entities are decoded after the DOCTYPE/ENTITY check, so a hidden DOCTYPE with entity declarations reaches the XML parser unchecked, enabling entity-expansion DoS and, on PHP below 8.0 or with LIBXML_NOENT, XXE (local file access) or SSRF.

Why it is dangerous: An attacker who can submit a spreadsheet to an application that parses it can cause denial of service, read local server files, or make the server send requests to internal systems.

Are you affected?

You are affected if your application uses PhpSpreadsheet 3.3.0 to 3.10.7 or 4.0.0 to 5.9.0 (or 5.10.0 with LIBXML_NOENT or on PHP before 8.0) to read SpreadsheetML/XML spreadsheet files from untrusted users.

Package / productAffected versionsFixed in
phpoffice/phpspreadsheet · composer>= 4.0.0, <= 5.9.05.10.0
phpoffice/phpspreadsheet · composer>= 3.3.0, <= 3.10.73.10.8

What to do

  1. Update phpoffice/phpspreadsheet to 5.10.0 (or 3.10.8 if you are on the 3.x line) with Composer
  2. If you cannot update now, do not parse SpreadsheetML XML files from untrusted sources
  3. Check that LIBXML_NOENT is not enabled in your PHP XML handling

Timeline

  1. 22 Oct 2026, 18:17 UTC
    Publicly disclosed
  2. 22 Oct 2026, 18:17 UTC
    Reported by NVD · NVD
  3. 27 Oct 2026, 15:38 UTC
    GitHub Advisory reported on it · GitHub Advisory
  4. 27 Oct 2026, 15:38 UTC
    Fixed version published: phpoffice/phpspreadsheet 5.10.0, phpoffice/phpspreadsheet 3.10.8 · GitHub Advisory

Sources 2 reports, oldest first

Official vendor, government CERT or advisory database

Technical details

ID
CVE-2026-108357 · GHSA-rxj4-h86g-25gc
CVSS
8.8 / 10
EPSS
0.5% chance of exploitation within 30 days
Disclosed
22 Oct 2026, 18:17 UTC
On Zero Radar
before the radar started
Last change
27 Oct 2026, 15:38 UTC

The plain-language parts and the attack diagram were written by an AI model (anthropic/claude-haiku-5.5) from the sources above. Facts like versions, exploitation and dates come from the sources themselves. How Zero Radar works

PhpSpreadsheet: crafted spreadsheet XML can bypass security check · Zero Radar