TYPO3 vulnerable to Improper Access Control Persisting File Abstraction Layer Entities via Data Handler
The advisory, in context
Problem
Entities of the File Abstraction Layer (FAL) could be persisted directly via DataHandler. This allowed attackers to reference files in the fallback storage directly and retrieve their file names and contents. The fallback storage ("zero-storage") is used as a backward compatibility layer for files located outside properly configured file storages and within the public web root directory. Exploiting this vulnerability requires a valid backend user account.
Solution
Update to TYPO3 versions 8.7.57 ELTS, 9.5.46 ELTS, 10.4.43 ELTS, 11.5.35 LTS, 12.4.11 LTS, 13.0.1 that fix the problem described.
ℹ️ Strong security defaults - Manual actions required
When persisting entities of the File Abstraction Layer directly via DataHandler, sys_file entities are now denied by default, and sys_file_reference & sys_file_metadata entities are not permitted to reference files in the fallback storage anymore.
When importing data from secure origins, this must be explicitly enabled in the corresponding DataHandler instance by using $dataHandler->isImporting = true;.
Credits
Thanks to TYPO3 core & security team member Oliver Hader who reported and fixed the issue.
References
Affected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
From 8.0.0 before 8.7.57
Fixed in 8.7.57
26 explicitly affected versions
v8.7.10, v8.7.11, v8.7.12, v8.7.13, v8.7.14, v8.7.15, v8.7.16, v8.7.17, v8.7.18, v8.7.19, v8.7.20, v8.7.21, v8.7.22, v8.7.23, v8.7.24, v8.7.25, v8.7.26, v8.7.27, v8.7.28, v8.7.29, v8.7.30, v8.7.31, v8.7.32, v8.7.7, v8.7.8, v8.7.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "8.0.0"
},
{
"fixed": "8.7.57"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v8.7.10",
"v8.7.11",
"v8.7.12",
"v8.7.13",
"v8.7.14",
"v8.7.15",
"v8.7.16",
"v8.7.17",
"v8.7.18",
"v8.7.19",
"v8.7.20",
"v8.7.21",
"v8.7.22",
"v8.7.23",
"v8.7.24",
"v8.7.25",
"v8.7.26",
"v8.7.27",
"v8.7.28",
"v8.7.29",
"v8.7.30",
"v8.7.31",
"v8.7.32",
"v8.7.7",
"v8.7.8",
"v8.7.9"
]
}From 9.0.0 before 9.5.46
Fixed in 9.5.46
41 explicitly affected versions
v9.0.0, v9.1.0, v9.2.0, v9.2.1, v9.3.0, v9.3.1, v9.3.2, v9.3.3, v9.4.0, v9.5.0, v9.5.1, v9.5.10, v9.5.11, v9.5.12, v9.5.13, v9.5.14, v9.5.15, v9.5.16, v9.5.17, v9.5.18, v9.5.19, v9.5.2, v9.5.20, v9.5.21, v9.5.22, v9.5.23, v9.5.24, v9.5.25, v9.5.26, v9.5.27, v9.5.28, v9.5.29, v9.5.3, v9.5.30, v9.5.31, v9.5.4, v9.5.5, v9.5.6, v9.5.7, v9.5.8, v9.5.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "9.0.0"
},
{
"fixed": "9.5.46"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v9.0.0",
"v9.1.0",
"v9.2.0",
"v9.2.1",
"v9.3.0",
"v9.3.1",
"v9.3.2",
"v9.3.3",
"v9.4.0",
"v9.5.0",
"v9.5.1",
"v9.5.10",
"v9.5.11",
"v9.5.12",
"v9.5.13",
"v9.5.14",
"v9.5.15",
"v9.5.16",
"v9.5.17",
"v9.5.18",
"v9.5.19",
"v9.5.2",
"v9.5.20",
"v9.5.21",
"v9.5.22",
"v9.5.23",
"v9.5.24",
"v9.5.25",
"v9.5.26",
"v9.5.27",
"v9.5.28",
"v9.5.29",
"v9.5.3",
"v9.5.30",
"v9.5.31",
"v9.5.4",
"v9.5.5",
"v9.5.6",
"v9.5.7",
"v9.5.8",
"v9.5.9"
]
}From 10.0.0 before 10.4.43
Fixed in 10.4.43
43 explicitly affected versions
v10.0.0, v10.1.0, v10.2.0, v10.2.1, v10.2.2, v10.3.0, v10.4.0, v10.4.1, v10.4.10, v10.4.11, v10.4.12, v10.4.13, v10.4.14, v10.4.15, v10.4.16, v10.4.17, v10.4.18, v10.4.19, v10.4.2, v10.4.20, v10.4.21, v10.4.22, v10.4.23, v10.4.24, v10.4.25, v10.4.26, v10.4.27, v10.4.28, v10.4.29, v10.4.3, v10.4.30, v10.4.31, v10.4.32, v10.4.33, v10.4.34, v10.4.36, v10.4.37, v10.4.4, v10.4.5, v10.4.6, v10.4.7, v10.4.8, v10.4.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "10.0.0"
},
{
"fixed": "10.4.43"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v10.0.0",
"v10.1.0",
"v10.2.0",
"v10.2.1",
"v10.2.2",
"v10.3.0",
"v10.4.0",
"v10.4.1",
"v10.4.10",
"v10.4.11",
"v10.4.12",
"v10.4.13",
"v10.4.14",
"v10.4.15",
"v10.4.16",
"v10.4.17",
"v10.4.18",
"v10.4.19",
"v10.4.2",
"v10.4.20",
"v10.4.21",
"v10.4.22",
"v10.4.23",
"v10.4.24",
"v10.4.25",
"v10.4.26",
"v10.4.27",
"v10.4.28",
"v10.4.29",
"v10.4.3",
"v10.4.30",
"v10.4.31",
"v10.4.32",
"v10.4.33",
"v10.4.34",
"v10.4.36",
"v10.4.37",
"v10.4.4",
"v10.4.5",
"v10.4.6",
"v10.4.7",
"v10.4.8",
"v10.4.9"
]
}From 11.0.0 before 11.5.35
Fixed in 11.5.35
44 explicitly affected versions
v11.0.0, v11.1.0, v11.1.1, v11.2.0, v11.3.0, v11.3.1, v11.3.2, v11.3.3, v11.4.0, v11.5.0, v11.5.1, v11.5.10, v11.5.11, v11.5.12, v11.5.13, v11.5.14, v11.5.15, v11.5.16, v11.5.17, v11.5.18, v11.5.19, v11.5.2, v11.5.20, v11.5.21, v11.5.22, v11.5.23, v11.5.24, v11.5.25, v11.5.26, v11.5.27, v11.5.28, v11.5.29, v11.5.3, v11.5.30, v11.5.31, v11.5.32, v11.5.33, v11.5.34, v11.5.4, v11.5.5, v11.5.6, v11.5.7, v11.5.8, v11.5.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "11.0.0"
},
{
"fixed": "11.5.35"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v11.0.0",
"v11.1.0",
"v11.1.1",
"v11.2.0",
"v11.3.0",
"v11.3.1",
"v11.3.2",
"v11.3.3",
"v11.4.0",
"v11.5.0",
"v11.5.1",
"v11.5.10",
"v11.5.11",
"v11.5.12",
"v11.5.13",
"v11.5.14",
"v11.5.15",
"v11.5.16",
"v11.5.17",
"v11.5.18",
"v11.5.19",
"v11.5.2",
"v11.5.20",
"v11.5.21",
"v11.5.22",
"v11.5.23",
"v11.5.24",
"v11.5.25",
"v11.5.26",
"v11.5.27",
"v11.5.28",
"v11.5.29",
"v11.5.3",
"v11.5.30",
"v11.5.31",
"v11.5.32",
"v11.5.33",
"v11.5.34",
"v11.5.4",
"v11.5.5",
"v11.5.6",
"v11.5.7",
"v11.5.8",
"v11.5.9"
]
}From 12.0.0 before 12.4.11
Fixed in 12.4.11
18 explicitly affected versions
v12.0.0, v12.1.0, v12.1.1, v12.1.2, v12.1.3, v12.2.0, v12.3.0, v12.4.0, v12.4.1, v12.4.10, v12.4.2, v12.4.3, v12.4.4, v12.4.5, v12.4.6, v12.4.7, v12.4.8, v12.4.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "12.0.0"
},
{
"fixed": "12.4.11"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v12.0.0",
"v12.1.0",
"v12.1.1",
"v12.1.2",
"v12.1.3",
"v12.2.0",
"v12.3.0",
"v12.4.0",
"v12.4.1",
"v12.4.10",
"v12.4.2",
"v12.4.3",
"v12.4.4",
"v12.4.5",
"v12.4.6",
"v12.4.7",
"v12.4.8",
"v12.4.9"
]
}From 13.0.0 before 13.0.1
Fixed in 13.0.1
2 explicitly affected versions
13.0.0, v13.0.0
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "13.0.0"
},
{
"fixed": "13.0.1"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"13.0.0",
"v13.0.0"
]
}References
- https://github.com/TYPO3/typo3/security/advisories/GHSA-rj3x-wvc6-5j66
- https://nvd.nist.gov/vuln/detail/CVE-2024-25121
- https://github.com/TYPO3/typo3/commit/38f0bf9a61e10365be26eb75bc23a81184dbed07
- https://github.com/TYPO3/typo3/commit/71e652bf84b16fd3592205f61f36750ab03db74c
- https://github.com/TYPO3/typo3/commit/b47b6ddf5a5f3f852c6e43f837360780c12e3c47
- https://github.com/TYPO3/typo3
- https://typo3.org/security/advisory/typo3-core-sa-2024-006