{"id":"CVE-2026-49738","aliases":["EUVD-2026-35400","GHSA-jf56-v8jc-jcc5"],"status":"published","title":"TYPO3 CMS - Broken Access Control in File Abstraction Layer","description":"The path allowance check in GeneralUtility::isAllowedAbsPath() performed a plain string prefix comparison without requiring a directory separator boundary, causing a path like /var/www/html-other/secret.yaml to be incorrectly accepted as valid when the project root was /var/www/html. Administrator users with access to the File Abstraction Layer were able to create new file storage definitions pointing to directories outside the project root, bypassing this path check. This issue affects TYPO3 CMS versions before 10.4.57, 11.0.0-11.5.50, 12.0.0-12.4.45, 13.0.0-13.4.30 and 14.0.0-14.3.2.","severity":{"version":"4.0","score":2.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00356,"percentile":0.29575,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2026-06-09T10:53:31Z","modified":"2026-10-28T02:30:24Z","fixes":[{"ecosystem":"Packagist","package":"typo3/cms-core","fixed_in":["10.4.57","11.5.51","12.4.46","13.4.31","14.3.3"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"10.4.57"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"11.0.0"},{"fixed":"11.5.51"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"12.0.0"},{"fixed":"12.4.46"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"13.0.0"},{"fixed":"13.4.31"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"14.0.0"},{"fixed":"14.3.3"}]}]},{"source":"osv","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"10.4.57"}]}],"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","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","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"]},{"source":"osv","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"11.0.0"},{"fixed":"11.5.51"}]}],"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.35","v11.5.36","v11.5.37","v11.5.38","v11.5.39","v11.5.4","v11.5.40","v11.5.41","v11.5.5","v11.5.6","v11.5.7","v11.5.8","v11.5.9"]},{"source":"osv","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"12.0.0"},{"fixed":"12.4.46"}]}],"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.11","v12.4.12","v12.4.13","v12.4.14","v12.4.15","v12.4.16","v12.4.17","v12.4.18","v12.4.19","v12.4.2","v12.4.20","v12.4.21","v12.4.22","v12.4.23","v12.4.24","v12.4.25","v12.4.26","v12.4.27","v12.4.28","v12.4.29","v12.4.3","v12.4.30","v12.4.31","v12.4.32","v12.4.33","v12.4.34","v12.4.35","v12.4.36","v12.4.37","v12.4.38","v12.4.39","v12.4.4","v12.4.40","v12.4.41","v12.4.42","v12.4.43","v12.4.44","v12.4.45","v12.4.5","v12.4.6","v12.4.7","v12.4.8","v12.4.9"]},{"source":"osv","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"13.0.0"},{"fixed":"13.4.31"}]}],"versions":["v13.0.0","v13.0.1","v13.1.0","v13.1.1","v13.2.0","v13.2.1","v13.3.0","v13.3.1","v13.4.0","v13.4.1","v13.4.10","v13.4.11","v13.4.12","v13.4.13","v13.4.14","v13.4.15","v13.4.16","v13.4.17","v13.4.18","v13.4.19","v13.4.2","v13.4.20","v13.4.21","v13.4.22","v13.4.23","v13.4.24","v13.4.25","v13.4.26","v13.4.27","v13.4.28","v13.4.29","v13.4.3","v13.4.30","v13.4.4","v13.4.5","v13.4.6","v13.4.7","v13.4.8","v13.4.9"]},{"source":"osv","ecosystem":"Packagist","package":"typo3/cms-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"14.0.0"},{"fixed":"14.3.3"}]}],"versions":["v14.0.0","v14.0.1","v14.0.2","v14.1.0","v14.1.1","v14.2.0","v14.3.0","v14.3.1","v14.3.2"]}],"products":[{"vendor":"typo3","product":"typo3 cms"}],"references":[{"url":"https://typo3.org/security/advisory/typo3-core-sa-2026-016","tags":["vendor-advisory","advisory","web"]},{"url":"https://github.com/TYPO3/typo3/commit/44c2fa9807944136218a0842e3051c0a379a002d","tags":["patch","fix","web"]},{"url":"https://github.com/TYPO3/typo3/commit/150a983a5d687cedcfc33bbe9c335d9a13fd05e5","tags":["patch","fix","web"]},{"url":"https://github.com/TYPO3/typo3/security/advisories/GHSA-jf56-v8jc-jcc5","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-49738","tags":["advisory"]},{"url":"https://github.com/FriendsOfPHP/security-advisories/blob/master/typo3/cms-core/CVE-2026-49738.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-jf56-v8jc-jcc5"},{"url":"https://packagist.org","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/49xxx/CVE-2026-49738.json","tags":["advisory"]},{"url":"https://github.com/TYPO3/typo3","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-49738","title":"TYPO3 CMS - Broken Access Control in File Abstraction Layer","description":"The path allowance check in GeneralUtility::isAllowedAbsPath() performed a plain string prefix comparison without requiring a directory separator boundary, causing a path like /var/www/html-other/secret.yaml to be incorrectly accepted as valid when the project root was /var/www/html. Administrator users with access to the File Abstraction Layer were able to create new file storage definitions pointing to directories outside the project root, bypassing this path check. This issue affects TYPO3 CMS versions before 10.4.57, 11.0.0-11.5.50, 12.0.0-12.4.45, 13.0.0-13.4.30 and 14.0.0-14.3.2.","status":"published","published":"2026-06-09T10:53:31.677Z","modified":"2026-07-15T12:48:36.417Z","cvss":[{"version":"4.0","score":2.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"low","assessor":"cna"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T13:34:59.78118Z"}],"euvd":[{"id":"EUVD-2026-35400","description":"The path allowance check in GeneralUtility::isAllowedAbsPath() performed a plain string prefix comparison without requiring a directory separator boundary, causing a path like /var/www/html-other/secret.yaml to be incorrectly accepted as valid when the project root was /var/www/html. Administrator users with access to the File Abstraction Layer were able to create new file storage definitions pointing to directories outside the project root, bypassing this path check. This issue affects TYPO3 CMS versions before 10.4.57, 11.0.0-11.5.50, 12.0.0-12.4.45, 13.0.0-13.4.30 and 14.0.0-14.3.2.","status":"published","published":"2026-06-09T10:53:31Z","modified":"2026-07-15T12:48:36Z","cvss":[{"version":"4.0","score":2.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"low"}],"updated_at":"2026-11-02T18:19:53.226345Z"}],"ghsa":[{"id":"GHSA-jf56-v8jc-jcc5","title":"TYPO3 CMS has Broken Access Control in its File Abstraction Layer","description":"### Problem\nThe path allowance check in `GeneralUtility::isAllowedAbsPath()` performed a plain string prefix comparison without requiring a directory separator boundary, causing a path like `/var/www/html-other/secret.yaml` to be incorrectly accepted as valid when the project root was `/var/www/html`. Administrator users with access to the File Abstraction Layer were able to create new file storage definitions pointing to directories outside the project root, bypassing this path check.\n\n### Solution\nUpdate to TYPO3 versions 10.4.57 ELTS, 11.5.51 ELTS, 12.4.46 ELTS, 13.4.31 LTS, 14.3.3 LTS that fix the problem described.\n\n### Credits\nTYPO3 CMS thanks Wolfgang Klinger for reporting this issue, and to TYPO3 core \u0026 security team member Oliver Hader for fixing it.\n\n### Resources\n* [TYPO3-CORE-SA-2026-016](https://typo3.org/security/advisory/typo3-core-sa-2026-016)","status":"published","published":"2026-06-12T19:09:04Z","modified":"2026-06-12T19:09:05Z","cvss":[{"version":"4.0","score":2.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"low"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:40:26.12116Z"}],"nvd":[{"id":"CVE-2026-49738","description":"The path allowance check in GeneralUtility::isAllowedAbsPath() performed a plain string prefix comparison without requiring a directory separator boundary, causing a path like /var/www/html-other/secret.yaml to be incorrectly accepted as valid when the project root was /var/www/html. Administrator users with access to the File Abstraction Layer were able to create new file storage definitions pointing to directories outside the project root, bypassing this path check. This issue affects TYPO3 CMS versions before 10.4.57, 11.0.0-11.5.50, 12.0.0-12.4.45, 13.0.0-13.4.30 and 14.0.0-14.3.2.","status":"published","published":"2026-06-09T11:16:53.247Z","modified":"2026-07-23T08:10:00.137Z","cvss":[{"version":"4.0","score":2.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"low","assessor":"secondary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:12:23.109705Z"}],"osv":[{"id":"CVE-2026-49738","title":"TYPO3 CMS - Broken Access Control in File Abstraction Layer","description":"The path allowance check in GeneralUtility::isAllowedAbsPath() performed a plain string prefix comparison without requiring a directory separator boundary, causing a path like /var/www/html-other/secret.yaml to be incorrectly accepted as valid when the project root was /var/www/html. Administrator users with access to the File Abstraction Layer were able to create new file storage definitions pointing to directories outside the project root, bypassing this path check. This issue affects TYPO3 CMS versions before 10.4.57, 11.0.0-11.5.50, 12.0.0-12.4.45, 13.0.0-13.4.30 and 14.0.0-14.3.2.","status":"published","published":"2026-06-09T10:53:31.677Z","modified":"2026-10-28T02:30:24.282010304Z","cvss":[{"version":"4.0","score":2.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"low"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:45:07.060148Z"},{"id":"GHSA-jf56-v8jc-jcc5","title":"TYPO3 CMS has Broken Access Control in its File Abstraction Layer","description":"### Problem\nThe path allowance check in `GeneralUtility::isAllowedAbsPath()` performed a plain string prefix comparison without requiring a directory separator boundary, causing a path like `/var/www/html-other/secret.yaml` to be incorrectly accepted as valid when the project root was `/var/www/html`. Administrator users with access to the File Abstraction Layer were able to create new file storage definitions pointing to directories outside the project root, bypassing this path check.\n\n### Solution\nUpdate to TYPO3 versions 10.4.57 ELTS, 11.5.51 ELTS, 12.4.46 ELTS, 13.4.31 LTS, 14.3.3 LTS that fix the problem described.\n\n### Credits\nTYPO3 CMS thanks Wolfgang Klinger for reporting this issue, and to TYPO3 core \u0026 security team member Oliver Hader for fixing it.\n\n### Resources\n* [TYPO3-CORE-SA-2026-016](https://typo3.org/security/advisory/typo3-core-sa-2026-016)","status":"published","published":"2026-06-12T19:09:04Z","modified":"2026-09-10T03:51:08.841227576Z","cvss":[{"version":"4.0","score":2.1,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"low"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:50.336262Z"}]}}
