CVE-2017-16654
Symfony Directory Traversal
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
7.5
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.
- Record
CVE-2017-16654- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:P/I:N/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
CVE List No score
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.
- Record
CVE-2017-16654- Updated
- 2026-11-02
EUVDEUVD-2022-3499 No score
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.
- Record
EUVD-2022-3499- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-c49r-8gj6-768r
7.5
Symfony Directory Traversal
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.
- Record
GHSA-c49r-8gj6-768r- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSV
7.5
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.
- Record
CVE-2017-16654- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2017-16654
7.5
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.
- Record
DEBIAN-CVE-2017-16654- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVGHSA-c49r-8gj6-768r
7.5
Symfony Directory Traversal
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.
- Record
GHSA-c49r-8gj6-768r- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2017-16654
7.5
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.
- Record
UBUNTU-CVE-2017-16654- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
symfony/intlPackagist |
2.7.0 up to 2.7.38 | 2.7.38 |
symfony/intlPackagist |
2.8.0 up to 2.8.31 | 2.8.31 |
symfony/intlPackagist |
3.0.0 up to 3.2.14 | 3.2.14 |
symfony/intlPackagist |
3.3.0 up to 3.3.13 | 3.3.13 |
symfony/symfonyPackagist |
2.7.0 up to 2.7.38 | 2.7.38 |
symfony/symfonyPackagist |
2.8.0 up to 2.8.31 | 2.8.31 |
symfony/symfonyPackagist |
3.0.0 up to 3.2.14 | 3.2.14 |
symfony/symfonyPackagist |
3.3.0 up to 3.3.13 | 3.3.13 |
symfonyDebian:12 |
before 3.4.0+dfsg-1 | 3.4.0+dfsg-1 |
symfonyDebian:13 |
before 3.4.0+dfsg-1 | 3.4.0+dfsg-1 |
Show 12 moreShow less
| Package | Affected | Fixed |
|---|---|---|
symfonyDebian:14 |
before 3.4.0+dfsg-1 | 3.4.0+dfsg-1 |
symfonyDebian:8 From an advisory covering 7 CVEs |
before 2.3.21+dfsg-4+deb8u4, plus listed versions 2.3.21+dfsg-42.3.21+dfsg-4+deb8u12.3.21+dfsg-4+deb8u22.3.21+dfsg-4+deb8u3 |
2.3.21+dfsg-4+deb8u4 |
symfonyDebian:9 From an advisory covering 8 CVEs |
before 2.8.7+dfsg-1.3+deb9u1, plus listed versions 2.8.7+dfsg-1.3 |
2.8.7+dfsg-1.3+deb9u1 |
symfony/intlPackagist |
2.7.0 up to 2.7.38, plus listed versions v2.7.0v2.7.1v2.7.10v2.7.11v2.7.12 Show 33 moreShow lessv2.7.13v2.7.14v2.7.15v2.7.16v2.7.17v2.7.18v2.7.19v2.7.2v2.7.20v2.7.21v2.7.22v2.7.23v2.7.24v2.7.25v2.7.26v2.7.27v2.7.28v2.7.29v2.7.3v2.7.30v2.7.31v2.7.32v2.7.33v2.7.34v2.7.35v2.7.36v2.7.37v2.7.4v2.7.5v2.7.6v2.7.7v2.7.8v2.7.9 |
2.7.38 |
symfony/intlPackagist |
2.8.0 up to 2.8.31, plus listed versions v2.8.0v2.8.1v2.8.10v2.8.11v2.8.12 Show 26 moreShow lessv2.8.13v2.8.14v2.8.15v2.8.16v2.8.17v2.8.18v2.8.19v2.8.2v2.8.20v2.8.21v2.8.22v2.8.23v2.8.24v2.8.25v2.8.26v2.8.27v2.8.28v2.8.29v2.8.3v2.8.30v2.8.4v2.8.5v2.8.6v2.8.7v2.8.8v2.8.9 |
2.8.31 |
symfony/intlPackagist |
3.0.0 up to 3.2.14, plus listed versions v3.0.0v3.0.1v3.0.2v3.0.3v3.0.4 Show 35 moreShow lessv3.0.5v3.0.6v3.0.7v3.0.8v3.0.9v3.1.0v3.1.0-BETA1v3.1.0-RC1v3.1.1v3.1.10v3.1.2v3.1.3v3.1.4v3.1.5v3.1.6v3.1.7v3.1.8v3.1.9v3.2.0v3.2.0-BETA1v3.2.0-RC1v3.2.0-RC2v3.2.1v3.2.10v3.2.11v3.2.12v3.2.13v3.2.2v3.2.3v3.2.4v3.2.5v3.2.6v3.2.7v3.2.8v3.2.9 |
3.2.14 |
symfony/intlPackagist |
3.3.0 up to 3.3.13, plus listed versions v3.3.0v3.3.1v3.3.10v3.3.11v3.3.12 Show 8 moreShow lessv3.3.2v3.3.3v3.3.4v3.3.5v3.3.6v3.3.7v3.3.8v3.3.9 |
3.3.13 |
symfony/symfonyPackagist |
2.7.0 up to 2.7.38, plus listed versions v2.7.0v2.7.1v2.7.10v2.7.11v2.7.12 Show 33 moreShow lessv2.7.13v2.7.14v2.7.15v2.7.16v2.7.17v2.7.18v2.7.19v2.7.2v2.7.20v2.7.21v2.7.22v2.7.23v2.7.24v2.7.25v2.7.26v2.7.27v2.7.28v2.7.29v2.7.3v2.7.30v2.7.31v2.7.32v2.7.33v2.7.34v2.7.35v2.7.36v2.7.37v2.7.4v2.7.5v2.7.6v2.7.7v2.7.8v2.7.9 |
2.7.38 |
symfony/symfonyPackagist |
2.8.0 up to 2.8.31, plus listed versions v2.8.0v2.8.1v2.8.10v2.8.11v2.8.12 Show 26 moreShow lessv2.8.13v2.8.14v2.8.15v2.8.16v2.8.17v2.8.18v2.8.19v2.8.2v2.8.20v2.8.21v2.8.22v2.8.23v2.8.24v2.8.25v2.8.26v2.8.27v2.8.28v2.8.29v2.8.3v2.8.30v2.8.4v2.8.5v2.8.6v2.8.7v2.8.8v2.8.9 |
2.8.31 |
symfony/symfonyPackagist |
3.0.0 up to 3.2.14, plus listed versions v3.0.0v3.0.1v3.0.2v3.0.3v3.0.4 Show 35 moreShow lessv3.0.5v3.0.6v3.0.7v3.0.8v3.0.9v3.1.0v3.1.0-BETA1v3.1.0-RC1v3.1.1v3.1.10v3.1.2v3.1.3v3.1.4v3.1.5v3.1.6v3.1.7v3.1.8v3.1.9v3.2.0v3.2.0-BETA1v3.2.0-RC1v3.2.0-RC2v3.2.1v3.2.10v3.2.11v3.2.12v3.2.13v3.2.2v3.2.3v3.2.4v3.2.5v3.2.6v3.2.7v3.2.8v3.2.9 |
3.2.14 |
symfony/symfonyPackagist |
3.3.0 up to 3.3.13, plus listed versions v3.3.0v3.3.1v3.3.10v3.3.11v3.3.12 Show 8 moreShow lessv3.3.2v3.3.3v3.3.4v3.3.5v3.3.6v3.3.7v3.3.8v3.3.9 |
3.3.13 |
symfonyUbuntu:16.04:LTS |
All versions, plus listed versions 2.7.1+dfsg-12.7.5+dfsg-12.7.9+dfsg-12.7.9+dfsg-1ubuntu22.7.10-0ubuntu2 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2017-16654 is a high vulnerability (CVSS 7.5) in Sensiolabs Symfony, published August 3, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.68%, the 85th percentile. Fixed in symfony/intl 2.7.38.
References
github.com/symfony/symfony/pull/24994
symfony.com/blog/cve-2017-16654-intl-bundle-readers-breaking-out-of-paths
lists.debian.org/debian-lts-announce/2019/03/msg00009.html
debian.org/security/2018/dsa-4262
nvd.nist.gov/vuln/detail/CVE-2017-16654
github.com/FriendsOfPHP/security-advisories/blob/master/symfony/intl/CVE-2017-16654.yaml
Show 7 moreShow less
github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2017-16654.yaml
symfony.com/cve-2017-16654
github.com/advisories/GHSA-c49r-8gj6-768r
security-tracker.debian.org/tracker/CVE-2017-16654
github.com/symfony/symfony
ubuntu.com/security/CVE-2017-16654
cve.org/CVERecord?id=CVE-2017-16654