{"id":"GHSA-83c3-qx27-2rwr","summary":"Symfony Allows URI Restrictions Bypass Via Double-Encoded String","details":"On the Symfony 2.0.x version, there's a security issue that allows access to routes protected by a firewall even when the user is not logged in.\n\nBoth the Routing component and the Security component uses the path returned by `getPathInfo()` to match a Request. The `getPathInfo()` returns a decoded path, but the Routing component (`Symfony\\Component\\Routing\\Matcher\\UrlMatcher`) decodes the path a second time; whereas the Security component, `Symfony\\Component\\HttpFoundation\\RequestMatcher`, does not.\n\nThis difference causes Symfony 2.0 to be vulnerable to double encoding attacks.\n\n","aliases":["CVE-2012-6431"],"modified":"2024-12-03T05:37:24.847084Z","published":"2022-05-17T05:17:03Z","database_specific":{"github_reviewed":true,"github_reviewed_at":"2023-08-15T23:43:25Z","nvd_published_at":"2012-12-27T11:47:00Z","cwe_ids":["CWE-287"],"severity":"MODERATE"},"references":[{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2012-6431"},{"type":"WEB","url":"https://github.com/symfony/symfony/commit/55014a6841bec50046e8329a4835c160ac31a496"},{"type":"WEB","url":"https://github.com/symfony/symfony/commit/8b2c17f80377582287a78e0b521497e039dd6b0d"},{"type":"WEB","url":"https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/http-foundation/CVE-2012-6431.yaml"},{"type":"WEB","url":"https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/routing/CVE-2012-6431.yaml"},{"type":"WEB","url":"https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/security/CVE-2012-6431.yaml"},{"type":"WEB","url":"https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2012-6431.yaml"},{"type":"WEB","url":"https://symfony.com/blog/security-release-symfony-2-0-20-and-2-1-5-released"},{"type":"WEB","url":"http://symfony.com/blog/security-release-symfony-2-0-20-and-2-1-5-released"}],"affected":[{"package":{"name":"symfony/http-foundation","ecosystem":"Packagist","purl":"pkg:composer/symfony/http-foundation"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.19"}]}],"versions":["2.0.4","2.0.5","2.0.6","2.0.7","v2.0.10","v2.0.12","v2.0.13","v2.0.14","v2.0.15","v2.0.16","v2.0.17","v2.0.18","v2.0.9"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/05/GHSA-83c3-qx27-2rwr/GHSA-83c3-qx27-2rwr.json"}},{"package":{"name":"symfony/routing","ecosystem":"Packagist","purl":"pkg:composer/symfony/routing"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.19"}]}],"versions":["2.0.4","2.0.5","2.0.6","2.0.7","v2.0.10","v2.0.12","v2.0.13","v2.0.14","v2.0.15","v2.0.16","v2.0.17","v2.0.18","v2.0.9"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/05/GHSA-83c3-qx27-2rwr/GHSA-83c3-qx27-2rwr.json"}},{"package":{"name":"symfony/security","ecosystem":"Packagist","purl":"pkg:composer/symfony/security"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.19"}]}],"versions":["2.0.4","2.0.5","2.0.6","2.0.7","v2.0.10","v2.0.12","v2.0.13","v2.0.14","v2.0.15","v2.0.16","v2.0.17","v2.0.18","v2.0.9"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/05/GHSA-83c3-qx27-2rwr/GHSA-83c3-qx27-2rwr.json"}},{"package":{"name":"symfony/symfony","ecosystem":"Packagist","purl":"pkg:composer/symfony/symfony"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.19"}]}],"versions":["2.0.4","2.0.5","2.0.6","2.0.7","v2.0.10","v2.0.11","v2.0.12","v2.0.13","v2.0.14","v2.0.15","v2.0.16","v2.0.17","v2.0.18","v2.0.9"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/05/GHSA-83c3-qx27-2rwr/GHSA-83c3-qx27-2rwr.json"}}],"schema_version":"1.9.0"}