GHSA-hrmw-qprp-wgmc · Severity: medium · Ecosystem: composer — PhpSpreadsheet has XSS via number format code with @ text placeholder bypasses htmlspecialchars in HTML writer
PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. The HTML writer skips htmlspecialchars escaping when a cell's formatted value differs from the original value. When a cell has a custom number format containing the text placeholder @ along with any additional literal characters (for example ". @", "@ ", or "x@"), the formatter replaces @ with the cell value and adds the extra characters, causing the formatted value to differ from the original and bypassing HTML escaping entirely. An attacker who can control the cell value and number format of an uploaded spreadsheet that is later converted to HTML and displayed to other users can achieve stored cross-site scripting. This issue is fixed in versions 5.7.0, 3.10.5, 2.4.5, 2.1.16, and 1.30.4.
Conclusion & alert: CVE-2026-40296 is rated Exploit Available (50/100): CVSS Medium severity, with low exploitation likelihood (EPSS 0.03%). Core evidence: 1 public exploit reference(s) are indexed (Exploit-DB). Mandatory action: Public exploits are available—assess exposure, apply mitigations, and prioritize patching.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
| EDB-ID | Source | Kind | Published | Link |
|---|---|---|---|---|
| — | nvd_ref | exploit_tag | Exploit-DB ↗ |
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2026-05-07 | — | 0.03% | — |
Full EPSS history (1 record total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 5.4 | 3.1 | MEDIUM |
|
2.3 | 2.7 | [email protected] |
GHSA-hrmw-qprp-wgmc · Severity: medium · Ecosystem: composer — PhpSpreadsheet has XSS via number format code with @ text placeholder bypasses htmlspecialchars in HTML writer
| Vendor | Product | Version | Raw CPE |
|---|---|---|---|
| phpoffice | phpspreadsheet | < 1.30.4 | cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:* |
| phpoffice | phpspreadsheet | >= 2.0.0, < 2.1.16 | cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:* |
| phpoffice | phpspreadsheet | >= 2.2.0, < 2.4.5 | cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:* |
| phpoffice | phpspreadsheet | >= 3.3.0, < 3.10.5 | cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:* |
| phpoffice | phpspreadsheet | >= 4.0.0, < 5.7.0 | cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:* |
| URL | Tags |
|---|---|
| https://github.com/PHPOffice/PhpSpreadsheet/security/advisories/GHSA-hrmw-qprp-wgmc | Exploit Mitigation Vendor Advisory |