Every CVE Search/ Get API key

CVE-2021-21355

Unrestricted File Upload in Form Framework

8.6 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
High
Availability
Low

Exploit likelihood

1.63%Up 0.7 points since Apr 14, 2021
90%50%10%1%

What each source reports

CVE List Score used 8.6

Unrestricted File Upload in Form Framework

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.

Record
CVE-2021-21355
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Weakness
CWE-434, CWE-552
Updated
2026-11-02
EUVDEUVD-2021-0587 8.6

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.

Record
EUVD-2021-0587
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Updated
2026-11-03
GitHub AdvisoriesGHSA-2r6j-862c-m2v2 8.0

Unrestricted File Upload in Form Framework

Problem

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.

TYPO3 Extbase extensions, which implement a file upload and do not implement a custom TypeConverter to transform uploaded files into FileReference domain model objects are affected by the vulnerability as well, since the UploadedFileReferenceConverter of ext:form handles the file upload and will accept files of any mime-type which are persisted to 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.

Solution

Update to TYPO3 versions 8.7.40, 9.5.25, 10.4.14, 11.1.1 that fix the problem described.

Type converter UploadedFileReferenceConverter is not registered globally anymore and just handles uploaded files within the scope of the Form Framework. Guessable storage location has changed from /fileadmin/user_upload/form_<random-hash>/ to /fileadmin/form_uploads/<random-40-bit>. Allowed mime-types must match expected file extensions (e.g. application/pdf must be .pdf, and cannot be .html).

Extbase extensions, who rely on the global availability of the UploadedFileReferenceConverter must now implement a custom TypeConverter to handle file uploads or explicitly implement the ext:form UploadedFileReferenceConverter with appropriate setting for accepted mime-types.

Credits

Thanks to Sebastian Michaelsen, Marc Lindemann, Oliver Eglseder, Markus Volkmer, Jakob Kunzmann, Johannes Regner, Richie Lee who reported this issue, and to TYPO3 core & security team members Oliver Hader & Benni Mack, as well as TYPO3 contributor Ralf Zimmermann who fixed the issue.

References

Record
GHSA-2r6j-862c-m2v2
CVSS 3.1
8.0 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L/E:F/RL:O/RC:C
Weakness
CWE-434, CWE-552
Updated
2026-11-02
NVD 8.6

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.

Record
CVE-2021-21355
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
CVSS 2.0
7.5 HighAV:N/AC:L/Au:N/C:P/I:P/A:P
Weakness
CWE-434, CWE-552
Updated
2026-11-02
OSV 8.6

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.

Record
CVE-2021-21355
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Updated
2026-11-02
OSVGHSA-2r6j-862c-m2v2 8.6

Unrestricted File Upload in Form Framework

Problem

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.

TYPO3 Extbase extensions, which implement a file upload and do not implement a custom TypeConverter to transform uploaded files into FileReference domain model objects are affected by the vulnerability as well, since the UploadedFileReferenceConverter of ext:form handles the file upload and will accept files of any mime-type which are persisted to 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.

Solution

Update to TYPO3 versions 8.7.40, 9.5.25, 10.4.14, 11.1.1 that fix the problem described.

Type converter UploadedFileReferenceConverter is not registered globally anymore and just handles uploaded files within the scope of the Form Framework. Guessable storage location has changed from /fileadmin/user_upload/form_<random-hash>/ to /fileadmin/form_uploads/<random-40-bit>. Allowed mime-types must match expected file extensions (e.g. application/pdf must be .pdf, and cannot be .html).

Extbase extensions, who rely on the global availability of the UploadedFileReferenceConverter must now implement a custom TypeConverter to handle file uploads or explicitly implement the ext:form UploadedFileReferenceConverter with appropriate setting for accepted mime-types.

Credits

Thanks to Sebastian Michaelsen, Marc Lindemann, Oliver Eglseder, Markus Volkmer, Jakob Kunzmann, Johannes Regner, Richie Lee who reported this issue, and to TYPO3 core & security team members Oliver Hader & Benni Mack, as well as TYPO3 contributor Ralf Zimmermann who fixed the issue.

References

Record
GHSA-2r6j-862c-m2v2
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L/E:F/RL:O/RC:C
Weakness
CWE-434, CWE-552
Updated
2026-11-02
OSVBIT-typo3-2021-21355 No score

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.

Record
BIT-typo3-2021-21355
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
typo3/cms-form
Packagist
8.0.0 to 8.7.39
8.7.40
typo3/cms-form
Packagist
9.0.0 to 9.5.24
9.5.25
typo3/cms-form
Packagist
10.0.0 to 10.4.13
10.4.14
typo3/cms-form
Packagist
11.0.0 to 11.1.0
11.1.1
typo3/cms-core
Packagist
10.0.0 up to 10.4.14
10.4.14
typo3/cms-core
Packagist
11.0.0 up to 11.1.1
11.1.1
typo3/cms-core
Packagist
9.0.0 up to 9.5.25
9.5.25
typo3/cms
Packagist
10.0.0 up to 10.4.14
10.4.14
typo3/cms
Packagist
11.0.0 up to 11.1.1
11.1.1
typo3/cms
Packagist
9.0.0 up to 9.5.25
9.5.25
Show 11 moreShow less
Affected packages
PackageAffectedFixed
typo3
Bitnami
8.0.0 up to 8.7.40, 9.0.0 up to 9.5.25, 10.0.0 up to 10.4.14, 11.0.0 up to 11.1.1
8.7.409.5.2510.4.1411.1.1
typo3/cms-form
Packagist
8.0.0 up to 8.7.40, plus listed versions
v8.7.10v8.7.11v8.7.12v8.7.13v8.7.14
Show 21 moreShow less
v8.7.15v8.7.16v8.7.17v8.7.18v8.7.19v8.7.20v8.7.21v8.7.22v8.7.23v8.7.24v8.7.25v8.7.26v8.7.27v8.7.28v8.7.29v8.7.30v8.7.31v8.7.32v8.7.7v8.7.8v8.7.9
8.7.40
typo3/cms-form
Packagist
9.0.0 up to 9.5.25, plus listed versions
v9.0.0v9.1.0v9.2.0v9.2.1v9.3.0
Show 29 moreShow less
v9.3.1v9.3.2v9.3.3v9.4.0v9.5.0v9.5.1v9.5.10v9.5.11v9.5.12v9.5.13v9.5.14v9.5.15v9.5.16v9.5.17v9.5.18v9.5.19v9.5.2v9.5.20v9.5.21v9.5.22v9.5.23v9.5.24v9.5.3v9.5.4v9.5.5v9.5.6v9.5.7v9.5.8v9.5.9
9.5.25
typo3/cms-form
Packagist
10.0.0 up to 10.4.14, plus listed versions
v10.0.0v10.1.0v10.2.0v10.2.1v10.2.2
Show 15 moreShow less
v10.3.0v10.4.0v10.4.1v10.4.10v10.4.11v10.4.12v10.4.13v10.4.2v10.4.3v10.4.4v10.4.5v10.4.6v10.4.7v10.4.8v10.4.9
10.4.14
typo3/cms-form
Packagist
11.0.0 up to 11.1.1, plus listed versions
v11.0.0v11.1.0
11.1.1
typo3/cms-core
Packagist
10.0.0 up to 10.4.14, plus listed versions
v10.0.0v10.1.0v10.2.0v10.2.1v10.2.2
Show 15 moreShow less
v10.3.0v10.4.0v10.4.1v10.4.10v10.4.11v10.4.12v10.4.13v10.4.2v10.4.3v10.4.4v10.4.5v10.4.6v10.4.7v10.4.8v10.4.9
10.4.14
typo3/cms-core
Packagist
11.0.0 up to 11.1.1, plus listed versions
v11.0.0v11.1.0
11.1.1
typo3/cms-core
Packagist
9.0.0 up to 9.5.25, plus listed versions
v9.0.0v9.1.0v9.2.0v9.2.1v9.3.0
Show 29 moreShow less
v9.3.1v9.3.2v9.3.3v9.4.0v9.5.0v9.5.1v9.5.10v9.5.11v9.5.12v9.5.13v9.5.14v9.5.15v9.5.16v9.5.17v9.5.18v9.5.19v9.5.2v9.5.20v9.5.21v9.5.22v9.5.23v9.5.24v9.5.3v9.5.4v9.5.5v9.5.6v9.5.7v9.5.8v9.5.9
9.5.25
typo3/cms
Packagist
10.0.0 up to 10.4.14, plus listed versions
v10.0.0v10.1.0v10.2.0v10.2.1v10.2.2
Show 15 moreShow less
v10.3.0v10.4.0v10.4.1v10.4.10v10.4.11v10.4.12v10.4.13v10.4.2v10.4.3v10.4.4v10.4.5v10.4.6v10.4.7v10.4.8v10.4.9
10.4.14
typo3/cms
Packagist
11.0.0 up to 11.1.1, plus listed versions
v11.0.0v11.1.0
11.1.1
typo3/cms
Packagist
9.0.0 up to 9.5.25, plus listed versions
v9.0.0v9.1.0v9.2.0v9.2.1v9.3.0
Show 29 moreShow less
v9.3.1v9.3.2v9.3.3v9.4.0v9.5.0v9.5.1v9.5.10v9.5.11v9.5.12v9.5.13v9.5.14v9.5.15v9.5.16v9.5.17v9.5.18v9.5.19v9.5.2v9.5.20v9.5.21v9.5.22v9.5.23v9.5.24v9.5.3v9.5.4v9.5.5v9.5.6v9.5.7v9.5.8v9.5.9
9.5.25

History

History
RecordedChangedSources
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2021-21355 is a high vulnerability (CVSS 8.6) in Typo3, published March 23, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.63%, the 76th percentile. Fixed in typo3/cms-form 8.7.40.

References

MoveEnter Open