Is phpoffice/phpspreadsheet vulnerable?

Composer phpoffice/phpspreadsheet has 35 known advisories in the phpwarden feed. Feed 2026.10.29.1, updated 2026-10-28.

35advisories
2critical
0on CISA KEV
0no fix recorded
CVETitleSeverityCVSSAffectedFixed in
CVE-2018-19277XXE in PHPSpreadsheet due to encoding issuehigh8.8<1.5.11.5.1
CVE-2024-45293XXE in PHPSpreadsheet's XLSX readerhigh7.5>=2.2.0 and <2.3.0 or <1.29.1 or >=2.0.0 and <2.1.12.3.0, 1.29.1, 2.1.1
CVE-2019-12331XXE in PHPSpreadsheet due to incomplete fix for previous encoding issuehigh8.8<1.8.01.8.0
CVE-2020-7776Cross-site scripting in phpoffice/phpspreadsheetmedium6.4<1.16.01.16.0
CVE-2024-45291PhpSpreadsheet allows absolute path traversal and Server-Side Request Forgery in HTML writer when embedding images is enabledmedium6.3>=2.2.0 and <2.3.0 or <1.29.2 or >=2.0.0 and <2.1.12.3.0, 1.29.2, 2.1.1
CVE-2025-54370PhpSpreadsheet vulnerable to SSRF when reading and displaying a processed HTML document in the browserhigh0.0<1.30.0 or >=2.0.0 and <2.1.12 or >=2.2.0 and <2.4.0 or >=3.0.0 and <3.10.0 or >=4.0.0 and <5.0.0 or >=2.0.0 and <2.1.0 or >=2.1.0 and <2.1.12 or >=2.2.0 and <2.3.0 or >=2.3.0 and <2.4.01.30.0, 2.1.12, 2.4.0, 3.10.0
CVE-2024-47873XmlScanner bypass leads to XXEhigh7.5<1.29.4 or >=2.0.0 and <2.1.3 or >=2.2.0 and <2.3.2 or >=3.3.0 and <3.4.01.29.4, 2.1.3, 2.3.2, 3.4.0
CVE-2024-48917XXE in PHPSpreadsheet's XLSX readerhigh7.5<1.29.4 or >=2.0.0 and <2.1.3 or >=2.2.0 and <2.3.2 or >=3.3.0 and <3.4.01.29.4, 2.1.3, 2.3.2, 3.4.0
CVE-2026-34084PhpSpreadsheet has SSRF/RCE in IOFactory::load when $filename is user controlledcritical0.0>=4.0.0 and <5.6.0 or >=3.3.0 and <3.10.4 or >=2.2.0 and <2.4.4 or >=2.0.0 and <2.1.15 or <1.30.35.6.0, 3.10.4, 2.4.4, 2.1.15
CVE-2024-45290PhpSpreadsheet allows absolute path traversal and Server-Side Request Forgery when opening XLSX filehigh7.7>=2.2.0 and <2.3.0 or <1.29.2 or >=2.0.0 and <2.1.12.3.0, 1.29.2, 2.1.1
CVE-2024-45048XXE in PHPSpreadsheet encoding is returnedhigh8.8<1.29.1 or >=2.2.0 and <2.2.1 or >=2.0.0 and <2.1.11.29.1, 2.2.1, 2.1.1
CVE-2024-45060PhpSpreadsheet has an Unauthenticated Cross-Site-Scripting (XSS) in sample filemedium6.1>=2.2.0 and <2.3.0 or <1.29.2 or >=2.0.0 and <2.1.12.3.0, 1.29.2, 2.1.1
CVE-2026-108358PhpSpreadsheet: XmlScanner Bypass via ISO-2022 Escape Sequences Allows XXE and Denial of Servicehigh0.0>=4.0.0 and <5.10.0 or >=3.3.0 and <3.10.8 or >=2.2.0 and <2.4.8 or >=2.0.0 and <2.1.19 or <1.30.75.10.0, 3.10.8, 2.4.8, 2.1.19
CVE-2026-59931PHPSpreadsheet: SSRF bypass via HTTP redirect in WEBSERVICE() domain whitelisthigh7.7>=4.0.0 and <5.8.1 or >=3.3.0 and <3.10.7 or >=2.2.0 and <2.4.7 or >=2.0.0 and <2.1.18 or <1.30.65.8.1, 3.10.7, 2.4.7, 2.1.18
CVE-2026-45034PHPSpreadsheet has a patch bypass for CVE-2026-34084critical0.0<1.30.51.30.5
CVE-2026-59932PHPSpreadsheet: Gnumeric reader unbounded gzip expansion causes memory exhaustionhigh7.5>=4.0.0 and <5.8.1 or >=3.3.0 and <3.10.7 or >=2.2.0 and <2.4.7 or >=2.0.0 and <2.1.18 or <1.30.65.8.1, 3.10.7, 2.4.7, 2.1.18
CVE-2026-59933PHPSpreadsheet: XLS/OLE sector-chain self-loop causes memory exhaustionhigh7.5>=4.0.0 and <5.8.1 or >=3.3.0 and <3.10.7 or >=2.2.0 and <2.4.7 or >=2.0.0 and <2.1.18 or <1.30.65.8.1, 3.10.7, 2.4.7, 2.1.18
CVE-2024-45046PhpSpreadsheet HTML writer is vulnerable to Cross-Site Scripting via style informationmedium5.4>=2.0.0 and <2.1.0 or <1.29.12.1.0, 1.29.1
CVE-2025-23210PhpSpreadsheet allows bypassing of XSS sanitizer using the javascript protocol and special charactersmedium5.4>=3.0.0 and <3.9.0 or <1.29.9 or >=2.2.0 and <2.3.7 or >=2.0.0 and <2.1.83.9.0, 1.29.9, 2.3.7, 2.1.8
CVE-2024-56408PhpSpreadsheet allows unauthorized Reflected XSS in `Convert-Online.php` filehigh7.1>=3.0.0 and <3.7.0 or <1.29.7 or >=2.0.0 and <2.1.6 or >=2.2.0 and <2.3.53.7.0, 1.29.7, 2.1.6, 2.3.5
CVE-2026-108359PhpSpreadsheet ODS Reader: Unbounded number-rows-repeated → CPU & Memory Exhaustion (DoS)high0.0>=4.0.0 and <5.10.0 or >=3.3.0 and <3.10.8 or >=2.2.0 and <2.4.8 or >=2.0.0 and <2.1.19 or <1.30.75.10.0, 3.10.8, 2.4.8, 2.1.19
CVE-2026-40863PhpSpreadsheet has CPU Denial of Service via Unbounded Row Index in SpreadsheetML XML Readerhigh7.5>=4.0.0 and <5.7.0 or >=3.3.0 and <3.10.5 or >=2.2.0 and <2.4.5 or >=2.0.0 and <2.1.16 or <1.30.65.7.0, 3.10.5, 2.4.5, 2.1.16
CVE-2026-40902PhpSpreadsheet has CPU Denial of Service via Unbounded Row Number in XLSX Row Dimensionshigh7.5>=4.0.0 and <5.7.0 or >=3.3.0 and <3.10.5 or >=2.2.0 and <2.4.5 or >=2.0.0 and <2.1.16 or <1.30.45.7.0, 3.10.5, 2.4.5, 2.1.16
CVE-2025-22131Cross-Site Scripting (XSS) vulnerability in generateNavigation() function in PhpSpreadsheetmedium6.1>=3.0.0 and <3.8.0 or <1.29.8 or >=2.0.0 and <2.1.7 or >=2.2.0 and <2.3.63.8.0, 1.29.8, 2.1.7, 2.3.6
CVE-2024-56412PhpSpreadsheet allows bypass XSS sanitizer using the javascript protocol and special charactersmedium5.4>=3.0.0 and <3.7.0 or <1.29.7 or >=2.0.0 and <2.1.6 or >=2.2.0 and <2.3.53.7.0, 1.29.7, 2.1.6, 2.3.5
CVE-2024-56411PhpSpreadsheet has a Cross-Site Scripting (XSS) vulnerability of the hyperlink base in the HTML page headermedium5.4>=3.0.0 and <3.7.0 or <1.29.7 or >=2.0.0 and <2.1.6 or >=2.2.0 and <2.3.53.7.0, 1.29.7, 2.1.6, 2.3.5
CVE-2026-108357PhpSpreadsheet: XmlScanner Bypass via Double-Encoded unentity() TOCTOU Allows XXE and Denial of Servicehigh0.0>=4.0.0 and <5.10.0 or >=3.3.0 and <3.10.85.10.0, 3.10.8
CVE-2024-45292PhpSpreadsheet HTML writer is vulnerable to Cross-Site Scripting via JavaScript hyperlinksmedium5.4>=2.2.0 and <2.3.0 or <1.29.2 or >=2.0.0 and <2.1.12.3.0, 1.29.2, 2.1.1
CVE-2024-56366PhpSpreadsheet allows unauthorized Reflected XSS in the Accounting.php filehigh7.1>=3.0.0 and <3.7.0 or <1.29.7 or >=2.0.0 and <2.1.6 or >=2.2.0 and <2.3.53.7.0, 1.29.7, 2.1.6, 2.3.5
CVE-2024-56409PhpSpreadsheet allows unauthorized Reflected XSS in Currency.php filehigh7.1>=3.0.0 and <3.7.0 or <1.29.7 or >=2.0.0 and <2.1.6 or >=2.2.0 and <2.3.53.7.0, 1.29.7, 2.1.6, 2.3.5
CVE-2024-56410PhpSpreadsheet has a Cross-Site Scripting (XSS) vulnerability in custom propertiesmedium5.4>=3.0.0 and <3.7.0 or <1.29.7 or >=2.0.0 and <2.1.6 or >=2.2.0 and <2.3.53.7.0, 1.29.7, 2.1.6, 2.3.5
CVE-2024-56365PhpSpreadsheet allows unauthorized Reflected XSS in the constructor of the Downloader classhigh7.1>=3.0.0 and <3.7.0 or <1.29.7 or >=2.0.0 and <2.1.6 or >=2.2.0 and <2.3.53.7.0, 1.29.7, 2.1.6, 2.3.5
CVE-2026-40296PhpSpreadsheet has XSS via number format code with @ text placeholder bypasses htmlspecialchars in HTML writermedium5.4>=4.0.0 and <5.7.0 or >=3.3.0 and <3.10.5 or >=2.2.0 and <2.4.5 or >=2.0.0 and <2.1.16 or <1.30.45.7.0, 3.10.5, 2.4.5, 2.1.16
CVE-2026-108360PhpSpreadsheet: SSRF whitelist bypass via unre-validated HTTP redirect in Drawing::setPath external image loadingmedium6.4>=4.0.0 and <5.10.0 or >=3.3.0 and <3.10.8 or >=2.2.0 and <2.4.8 or >=2.0.0 and <2.1.19 or <1.30.75.10.0, 3.10.8, 2.4.8, 2.1.19
CVE-2026-35453PhpSpreadsheet has XSS via NumberFormat @ Text Substitution in HTML Writermedium0.0>=4.0.0 and <5.7.0 or >=3.3.0 and <3.10.5 or >=2.2.0 and <2.4.5 or >=2.0.0 and <2.1.16 or <1.30.45.7.0, 3.10.5, 2.4.5, 2.1.16

Am I affected?

Find out in one command. phpwarden checks your composer.lock against this advisory and 20,000+ others, ranked by real-world exploitation (CISA KEV + EPSS). Free, offline, open data.

# PHP projects (recommended)
composer require --dev phpwarden/phpwarden
# then
vendor/bin/phpwarden deps composer.lock

# or, without Composer
pipx install phpwarden   &&   phpwarden deps composer.lock

Or keep it checked automatically: GitHub Action · pre-commit hook · GitLab CI · Laravel artisan command

Install docs   How findings are ranked
A version is vulnerable when it falls inside an affected range and below the fixed version. phpwarden applies these ranges to the exact versions in your lockfile or install, so you only see what applies to you.