[SECURITY] Mitigate bypassing CSRF token via XSS
Cross-site scripting in same-site/same-origin context most probably allows bypassing tokens that usually protects against cross-site request forgery - basically that is obvious when focusing on "cross-site" and "same-site" terminology. To mitigate these scenarios, same-site requests from outside`/typo3/` URI path - which is used to access the backend user interface - now have to provide an HTTP `Referer` header which is enforced for global routes potentially containing CSRF tokens. In general all routes that switch their state internally from `public` to `restricted` are relevant in this scenario. If really necessary, the behavior can be disabled using corresponding feature switch `security.backend.enforceReferrer` in TYPO3_CONF_VARS. Resolves: #90681 Releases: master, 9.5 Change-Id: Id410fa73f1029cb131356e44b64637a5f12381e5 Security-Bulletin: TYPO3-CORE-SA-2020-006 Security-References: CVE-2020-11069 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64470 Tested-by:Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org>
Showing
- Build/Sources/Sass/typo3/_login_screen.scss 1 addition, 1 deletionBuild/Sources/Sass/typo3/_login_screen.scss
- Build/Sources/TypeScript/backend/Resources/Public/TypeScript/Login.ts 31 additions, 0 deletions...s/TypeScript/backend/Resources/Public/TypeScript/Login.ts
- typo3/sysext/backend/Classes/Controller/LoginController.php 13 additions, 1 deletiontypo3/sysext/backend/Classes/Controller/LoginController.php
- typo3/sysext/backend/Classes/Http/RouteDispatcher.php 36 additions, 0 deletionstypo3/sysext/backend/Classes/Http/RouteDispatcher.php
- typo3/sysext/backend/Classes/Middleware/BackendRouteInitialization.php 1 addition, 0 deletions...backend/Classes/Middleware/BackendRouteInitialization.php
- typo3/sysext/backend/Configuration/Backend/Routes.php 1 addition, 0 deletionstypo3/sysext/backend/Configuration/Backend/Routes.php
- typo3/sysext/backend/Resources/Private/Language/locallang.xlf 3 additions, 0 deletions...3/sysext/backend/Resources/Private/Language/locallang.xlf
- typo3/sysext/backend/Resources/Private/Layouts/Login.html 6 additions, 1 deletiontypo3/sysext/backend/Resources/Private/Layouts/Login.html
- typo3/sysext/backend/Resources/Public/Css/backend.css 1 addition, 1 deletiontypo3/sysext/backend/Resources/Public/Css/backend.css
- typo3/sysext/backend/Resources/Public/JavaScript/Login.js 1 addition, 1 deletiontypo3/sysext/backend/Resources/Public/JavaScript/Login.js
- typo3/sysext/backend/Tests/Unit/Http/RouteDispatcherTest.php 8 additions, 0 deletionstypo3/sysext/backend/Tests/Unit/Http/RouteDispatcherTest.php
- typo3/sysext/core/Classes/Http/Security/InvalidReferrerException.php 25 additions, 0 deletions...t/core/Classes/Http/Security/InvalidReferrerException.php
- typo3/sysext/core/Classes/Http/Security/MissingReferrerException.php 25 additions, 0 deletions...t/core/Classes/Http/Security/MissingReferrerException.php
- typo3/sysext/core/Classes/Http/Security/ReferrerEnforcer.php 103 additions, 0 deletionstypo3/sysext/core/Classes/Http/Security/ReferrerEnforcer.php
- typo3/sysext/core/Configuration/DefaultConfiguration.php 1 addition, 0 deletionstypo3/sysext/core/Configuration/DefaultConfiguration.php
- typo3/sysext/core/Configuration/DefaultConfigurationDescription.yaml 5 additions, 0 deletions...t/core/Configuration/DefaultConfigurationDescription.yaml
- typo3/sysext/core/Documentation/Changelog/9.5.x/Important-91242-IntroduceBackendRouteReferrerCheck.rst 64 additions, 0 deletions....x/Important-91242-IntroduceBackendRouteReferrerCheck.rst
- typo3/sysext/core/Resources/Public/JavaScript/ReferrerRefresh.js 2 additions, 0 deletions...ysext/core/Resources/Public/JavaScript/ReferrerRefresh.js
- typo3/sysext/install/Classes/Http/Application.php 2 additions, 1 deletiontypo3/sysext/install/Classes/Http/Application.php
- typo3/sysext/install/Classes/Middleware/Maintenance.php 25 additions, 0 deletionstypo3/sysext/install/Classes/Middleware/Maintenance.php
Please register or sign in to comment