typo3/cms-core security advisory
CVE-2026-0859: TYPO3 CMS Allows Insecure Deserialization via Mailer File Spool
CVE-2026-0859 is a medium-severity PHP object injection vulnerability in the PHP package typo3/cms-core (CVSS 7.8), published 13 January 2026. The advisory does not name a fixed version. Exploiting it needs a low-privilege user account.
medium 7.8 published 2026-01-13 · updated 2026-06-17
- Affected versions
- >= 10.0.0, <= 10.4.54
>= 11.0.0, <= 11.5.48
>= 12.0.0, <= 12.4.40
>= 13.0.0, <= 13.4.22
>= 14.0.0, <= 14.0.1 - Fixed in
- not stated
- Newest release
- 14.3.10
- Severity
- Medium · CVSS 7.8
- Type
- PHP object injection
CWE-502 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Is your typo3/cms-core version affected?
Who can exploit CVE-2026-0859
- Access: A normal, low-privilege user account in the app.
- Position: The attacker needs local access to the server.
CVSS vector (scored by NVD): CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
How to fix CVE-2026-0859 in typo3/cms-core
- Find the installed version:
composer show typo3/cms-core. If you never required it yourself,composer why typo3/cms-coreshows which package pulls it in. - Update it:
composer update typo3/cms-core --with-all-dependencies. - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"typo3/cms-core": "^14.3.10"if you can take that version), or upgrade the package that requires it. - Run
composer audit. It reads the same advisory data and should no longer list CVE-2026-0859. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Never pass user-controlled data to unserialize() or to template rendering, and restrict who can edit templates or settings.
- Put a web application firewall in front of the app and watch for new PHP files or admin users.
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-0859 advisory
TYPO3's mail‑file spool deserialization flaw lets local users with write access to the spool directory craft a malicious file that is deserialized during the mailer:spool:send command, enabling arbitrary PHP code execution on the web server. This issue affects TYPO3 CMS versions 10.0.0-10.4.54, 11.0.0-11.5.48, 12.0.0-12.4.40, 13.0.0-13.4.22 and 14.0.0-14.0.1.
References
- GitHub advisory GHSA-7vp9-x248-9vr9 github.com
- Typo3 security advisory typo3.org
- Fix commit 3225d70 github.com
- Fix commit 722bf71 github.com
- Fix commit e0f0cee github.com
Other typo3/cms-core advisories
- high CVE-2026-19418: TYPO3-CORE-SA-2026-021: Broken Access Control in Backend and Install Tool 2026-08-11
- high CVE-2026-11607: TYPO3-CORE-SA-2026-019: Broken Access Control in Form Framework 2026-06-09
- medium CVE-2026-49740: TYPO3-CORE-SA-2026-018: Insecure Deserialization in Core API 2026-06-09
- high CVE-2026-49741: TYPO3-CORE-SA-2026-017: Privilege Escalation & SQL Injection in Form Framework 2026-06-09
- low CVE-2026-49738: TYPO3-CORE-SA-2026-016: Broken Access Control in File Abstraction Layer 2026-06-09
- medium CVE-2026-47352: TYPO3-CORE-SA-2026-015: Broken Access Control in Backend API 2026-06-09
Related
Need help patching or upgrading? Laskyr does PHP and Laravel security fixes and upgrades. Tell us what you run and we reply with a plan and a price.
Ask about a fixWhere this data comes from
- Affected and fixed versions: the Packagist security advisories API (GitHub Advisory Database and FriendsOfPHP), the same data
composer audituses. Synced 2026-11-03. - Description, score, weakness and references: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Exploited-in-the-wild status: the CISA Known Exploited Vulnerabilities catalog, checked 2026-11-04.
- Compiled by Daniel Lasek at Laskyr from the sources above. The summary, “who can exploit it”, “how to fix it” and hardening sections are our plain-English reading of the record and are generated from it. The quoted description is the record's own text. Spot an error? Tell us.