{"id":"CVE-2017-16654","details":"An issue was discovered in Symfony before 2.7.38, 2.8.31, 3.2.14, 3.3.13, 3.4-BETA5, and 4.0-BETA5. The Intl component includes various bundle readers that are used to read resource bundles from the local filesystem. The read() methods of these classes use a path and a locale to determine the language bundle to retrieve. The locale argument value is commonly retrieved from untrusted user input (like a URL parameter). An attacker can use this argument to navigate to arbitrary directories via the dot-dot-slash attack, aka Directory Traversal.","aliases":["GHSA-c49r-8gj6-768r"],"modified":"2026-04-10T03:58:51.930475Z","published":"2018-08-06T21:29:00.330Z","references":[{"type":"ADVISORY","url":"https://lists.debian.org/debian-lts-announce/2019/03/msg00009.html"},{"type":"ADVISORY","url":"https://www.debian.org/security/2018/dsa-4262"},{"type":"REPORT","url":"https://github.com/symfony/symfony/pull/24994"},{"type":"REPORT","url":"https://symfony.com/blog/cve-2017-16654-intl-bundle-readers-breaking-out-of-paths"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/symfony/symfony","events":[{"introduced":"9975b1eca3de4db792a2c3e4e16f676a4aadcd46"},{"last_affected":"c166da413153ecbb4b83c0415f7df13c250c3342"},{"introduced":"b96a144bc875684f3338f697687147a2696d73eb"},{"last_affected":"e1aabd6f50fb4586b330f9ac54b4bcdf7352a0f8"},{"introduced":"5a7e31c48e7cd4831efa409fffb661beb9995174"},{"last_affected":"1452970fc29131776505f684bd81d7a33cbaada4"},{"introduced":"0"},{"last_affected":"2e913a829cfbbf9cb38b321bdff1806b44b192eb"}],"database_specific":{"versions":[{"introduced":"2.7.0"},{"last_affected":"2.7.37"},{"introduced":"3.2.0"},{"last_affected":"3.2.13"},{"introduced":"3.3.0"},{"last_affected":"3.3.12"},{"introduced":"0"},{"last_affected":"8.0"}]}}],"versions":["v2.0.0","v2.0.0-RC1","v2.0.0-RC2","v2.0.0-RC3","v2.0.0-RC4","v2.0.0-RC5","v2.0.0-RC6","v2.0.0BETA1","v2.0.0BETA2","v2.0.0BETA3","v2.0.0BETA4","v2.0.0BETA5","v2.0.0PR8","v2.1.0","v2.1.0-BETA1","v2.1.0-BETA2","v2.1.0-BETA3","v2.1.0-BETA4","v2.1.0-RC1","v2.1.0-RC2","v2.2.0-BETA1","v2.2.0-BETA2","v2.3.0-BETA1","v2.3.0-BETA2","v2.4.0-BETA1","v2.4.0-BETA2","v2.5.0-BETA1","v2.5.0-BETA2","v2.6.0-BETA1","v2.7.0","v2.7.1","v2.7.10","v2.7.11","v2.7.12","v2.7.13","v2.7.14","v2.7.15","v2.7.16","v2.7.17","v2.7.18","v2.7.19","v2.7.2","v2.7.20","v2.7.21","v2.7.22","v2.7.23","v2.7.24","v2.7.25","v2.7.26","v2.7.27","v2.7.28","v2.7.29","v2.7.3","v2.7.30","v2.7.31","v2.7.32","v2.7.33","v2.7.34","v2.7.35","v2.7.36","v2.7.37","v2.7.4","v2.7.5","v2.7.6","v2.7.7","v2.7.8","v2.7.9","v3.0.0","v3.0.0-BETA1","v3.2.0","v3.2.0-BETA1","v3.2.0-RC1","v3.2.1","v3.2.10","v3.2.11","v3.2.12","v3.2.13","v3.2.2","v3.2.3","v3.2.4","v3.2.5","v3.2.6","v3.2.7","v3.2.8","v3.2.9","v3.3.0","v3.3.0-BETA1","v3.3.1","v3.3.10","v3.3.11","v3.3.12","v3.3.2","v3.3.3","v3.3.4","v3.3.5","v3.3.6","v3.3.7","v3.3.8","v3.3.9","v4.0.0-BETA1","v4.0.0-BETA2","v4.0.0-BETA3","v4.0.0-BETA4","v4.2.0-BETA1","v4.2.0-BETA2","v4.3.0-BETA1","v5.0.0-BETA1","v5.0.0-BETA2","v5.0.0-RC1","v5.1.0-BETA1","v5.2.0-BETA1","v5.2.0-BETA2","v5.2.0-BETA3","v5.3.0-BETA1","v5.3.0-BETA2","v5.3.0-BETA3","v5.3.0-BETA4","v6.0.0-BETA1","v6.0.0-BETA2","v6.0.0-BETA3","v6.0.0-RC1","v6.1.0-BETA1","v6.1.0-BETA2","v6.1.0-RC1","v6.2.0-BETA1","v6.2.0-BETA2","v6.2.0-BETA3","v6.3.0-BETA1","v6.3.0-BETA2","v6.3.0-BETA3","v6.3.0-RC1","v7.0.0-BETA1","v7.0.0-BETA2","v7.0.0-BETA3","v7.0.0-RC1","v7.1.0-BETA1","v7.1.0-RC1","v7.2.0-BETA1","v7.2.0-BETA2","v7.2.0-RC1","v7.3.0-BETA1","v7.3.0-BETA2","v7.3.0-RC1","v8.0.0","v8.0.0-BETA1","v8.0.0-BETA2","v8.0.0-RC1","v8.0.0-RC2","v8.0.0-RC3","vPR3","vPR4","vPR5","vPR6","vPR8","vPR9"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2017-16654.json","unresolved_ranges":[{"events":[{"introduced":"3.8.0"},{"last_affected":"3.8.30"}]},{"events":[{"introduced":"0"},{"last_affected":"9.0"}]}]}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"}]}