Symfony HTTP Foundation web cache poisoning
Published 13 May 2022 · Updated 16 Feb 2024
Affected packages
- Affected
- >=2.7.0 <2.7.49
- Fixed in
- 2.7.49
composer require symfony/http-foundation:^2.7.49- Affected
- >=2.8.0 <2.8.44
- Fixed in
- 2.8.44
composer require symfony/http-foundation:^2.8.44- Affected
- >=3.0.0 <3.3.18
- Fixed in
- 3.3.18
composer require symfony/http-foundation:^3.3.18- Affected
- >=3.4.0 <3.4.14
- Fixed in
- 3.4.14
composer require symfony/http-foundation:^3.4.14- Affected
- >=4.0.0 <4.0.14
- Fixed in
- 4.0.14
composer require symfony/http-foundation:^4.0.14- Affected
- >=4.1.0 <4.1.3
- Fixed in
- 4.1.3
composer require symfony/http-foundation:^4.1.3- Affected
- >=2.7.0 <2.7.49
- Fixed in
- 2.7.49
composer require symfony/symfony:^2.7.49- Affected
- >=2.8.0 <2.8.44
- Fixed in
- 2.8.44
composer require symfony/symfony:^2.8.44- Affected
- >=3.0.0 <3.3.18
- Fixed in
- 3.3.18
composer require symfony/symfony:^3.3.18- Affected
- >=3.4.0 <3.4.14
- Fixed in
- 3.4.14
composer require symfony/symfony:^3.4.14- Affected
- >=4.0.0 <4.0.14
- Fixed in
- 4.0.14
composer require symfony/symfony:^4.0.14- Affected
- >=4.1.0 <4.1.3
- Fixed in
- 4.1.3
composer require symfony/symfony:^4.1.3Details
An issue was discovered in Http Foundation in Symfony 2.7.0 through 2.7.48, 2.8.0 through 2.8.43, 3.3.0 through 3.3.17, 3.4.0 through 3.4.13, 4.0.0 through 4.0.13, and 4.1.0 through 4.1.2. It arises from support for a (legacy) IIS header that lets users override the path in the request URL via the X-Original-URL or X-Rewrite-URL HTTP request header. These headers are designed for IIS support, but it's not verified that the server is in fact running IIS, which means anybody who can send these requests to an application can trigger this. This affects \Symfony\Component\HttpFoundation\Request::prepareRequestUri() where X-Original-URL and X_REWRITE_URL are both used. The fix drops support for these methods so that they cannot be used as attack vectors such as web cache poisoning.
Is GHSA-8wgj-6wx8-h5hq in any of your client repos?
Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected symfony/http-foundation, and gives you the command that fixes it.
References
- Advisorynvd.nist.gov/vuln/detail/CVE-2018-14773
- Linkgithub.com/symfony/symfony/commit/e447e8b92148ddb3d1956b96638600ec95e08f6b
- Linkgithub.com/FriendsOfPHP/security-advisories/blob/master/symfony/http-foundation/CVE-2018-14773.yaml
- Linkgithub.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2018-14773.yaml
- Linklists.debian.org/debian-lts-announce/2019/03/msg00009.html
- Linkseclists.org/bugtraq/2019/May/21
- Linksymfony.com/blog/cve-2018-14773-remove-support-for-legacy-and-risky-http-headers
- Linkwww.debian.org/security/2019/dsa-4441
- Linkwww.drupal.org/SA-CORE-2018-005
- Linkwww.securityfocus.com/bid/104943
- Linkwww.securitytracker.com/id/1041405
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.