Summary
TYPO3 CMS - Unrestricted File Upload in Form Framework
Advisory details
Problem
Users were able to upload files with arbitrary MIME types to forms using FileUpload or ImageUpload elements with allowedMimeTypes configured - uploading PHP files was not possible. The restriction was not enforced server-side because the MimeTypeValidator was registered during form building before concrete form definition properties were applied, resulting in the validator never being added to the processing pipeline.
Solution
Update to TYPO3 version 14.3.5 LTS that fixes the problem described.
Credits
Thanks to Sébastien Convers for reporting this issue, and to Josua Vogel and Oliver Hader for fixing it.
References
- https://github.com/advisories/GHSA-mfqj-cqv3-h7xw
- https://github.com/TYPO3/typo3/security/advisories/GHSA-mfqj-cqv3-h7xw
- https://nvd.nist.gov/vuln/detail/CVE-2026-15305
- https://github.com/TYPO3/typo3/commit/817ad41cc9dd28aac0fc4d0fe16fc25d46dd554a
- https://github.com/TYPO3/typo3/commit/cfda21050398eb145211a4fa6f9988f10e43e10b
- https://github.com/FriendsOfPHP/security-advisories/blob/master/typo3/cms-form/CVE-2026-15305.yaml
- https://news.typo3.com/security/advisory/typo3-core-sa-2026-020
- https://typo3.org/security/advisory/typo3-core-sa-2026-020
Related vulnerabilities
All Supply chain →- HIGHGHSA-7q9c-hpx7-9cwm
TypeSpec: Unauthenticated Remote Shutdown of Spector Mock Server via POST /.admin/stop
- CRITICALCVE-2026-73842
OpenChoreo: cluster-gateway internal proxy performs no caller authentication and is not read-only — data-plane Secret disclosure and arbitrary Kubernetes mutation
- MEDIUMCVE-2026-73557
vLLM: Incomplete CVE-2025-62164 remediation can be bypassed by concurrent prompt parts
- MEDIUMCVE-2026-73556
vLLM: ReDoS via structured_outputs.regex in the lm-format-enforcer backend (no compile timeout) — missed sibling of GHSA-rwxx-mrjm-wc2m
- MEDIUMCVE-2026-73555
vLLM: Unauthenticated Internal Path and Username Disclosure via Validation Error Messages
- MEDIUMCVE-2026-71486
vLLM: Derender endpoints decode caller-supplied GenerateResponse token IDs without output bounds