CVE-2020-15094
RCE in Symfony
In Symfony before versions 4.4.13 and 5.1.5, the CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cached responses. The class was initially written with surrogate caching and ESI support in mind (all HTTP calls come from a trusted backend in that scenario). But when used by CachingHttpClient and if an attacker can control the response for a request being made by the CachingHttpClient, remote code execution is possible. This has been fixed in versions 4.4.13 and 5.1.5.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.0
RCE in Symfony
In Symfony before versions 4.4.13 and 5.1.5, the CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cached responses. The class was initially written with surrogate caching and ESI support in mind (all HTTP calls come from a trusted backend in that scenario). But when used by CachingHttpClient and if an attacker can control the response for a request being made by the CachingHttpClient, remote code execution is possible. This has been fixed in versions 4.4.13 and 5.1.5.
- Record
CVE-2020-15094- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H - Weakness
- CWE-212
- Updated
- 2026-11-02
EUVDEUVD-2020-0840
8.0
In Symfony before versions 4.4.13 and 5.1.5, the CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cached responses. The class was initially written with surrogate caching and ESI support in mind (all HTTP calls come from a trusted backend in that scenario). But when used by CachingHttpClient and if an attacker can control the response for a request being made by the CachingHttpClient, remote code execution is possible. This has been fixed in versions 4.4.13 and 5.1.5.
- Record
EUVD-2020-0840- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-754h-5r27-7x3r
8.0
RCE in Symfony
Description
The CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cached responses. The class was initially written with surrogate caching and ESI support in mind (all HTTP calls come from a trusted backend in that scenario). But when used by CachingHttpClient and if an attacker can control the response for a request being made by the CachingHttpClient, remote code execution is possible.
Resolution
HTTP headers designed for internal use in HttpCache are now stripped from remote responses before being passed to HttpCache.
The patch for this issue is available here for the 4.4 branch.
Credits
I would like to thank Matthias Pigulla (webfactory GmbH) for reporting and fixing the issue.
- Record
GHSA-754h-5r27-7x3r- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H - Weakness
- CWE-212
- Updated
- 2026-11-02
NVD
8.0
In Symfony before versions 4.4.13 and 5.1.5, the CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cached responses. The class was initially written with surrogate caching and ESI support in mind (all HTTP calls come from a trusted backend in that scenario). But when used by CachingHttpClient and if an attacker can control the response for a request being made by the CachingHttpClient, remote code execution is possible. This has been fixed in versions 4.4.13 and 5.1.5.
- Record
CVE-2020-15094- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Weakness
- CWE-212
- Updated
- 2026-11-02
OSV
8.8
In Symfony before versions 4.4.13 and 5.1.5, the CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cached responses. The class was initially written with surrogate caching and ESI support in mind (all HTTP calls come from a trusted backend in that scenario). But when used by CachingHttpClient and if an attacker can control the response for a request being made by the CachingHttpClient, remote code execution is possible. This has been fixed in versions 4.4.13 and 5.1.5.
- Record
CVE-2020-15094- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2020-15094
8.8
In Symfony before versions 4.4.13 and 5.1.5, the CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cached responses. The class was initially written with surrogate caching and ESI support in mind (all HTTP calls come from a trusted backend in that scenario). But when used by CachingHttpClient and if an attacker can control the response for a request being made by the CachingHttpClient, remote code execution is possible. This has been fixed in versions 4.4.13 and 5.1.5.
- Record
DEBIAN-CVE-2020-15094- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-754h-5r27-7x3r
8.0
RCE in Symfony
Description
The CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cached responses. The class was initially written with surrogate caching and ESI support in mind (all HTTP calls come from a trusted backend in that scenario). But when used by CachingHttpClient and if an attacker can control the response for a request being made by the CachingHttpClient, remote code execution is possible.
Resolution
HTTP headers designed for internal use in HttpCache are now stripped from remote responses before being passed to HttpCache.
The patch for this issue is available here for the 4.4 branch.
Credits
I would like to thank Matthias Pigulla (webfactory GmbH) for reporting and fixing the issue.
- Record
GHSA-754h-5r27-7x3r- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H - Weakness
- CWE-212
- Updated
- 2026-11-02
OSVBIT-symfony-2020-15094 No score
In Symfony before versions 4.4.13 and 5.1.5, the CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cached responses. The class was initially written with surrogate caching and ESI support in mind (all HTTP calls come from a trusted backend in that scenario). But when used by CachingHttpClient and if an attacker can control the response for a request being made by the CachingHttpClient, remote code execution is possible. This has been fixed in versions 4.4.13 and 5.1.5.
- Record
BIT-symfony-2020-15094- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
symfony/http-kernelPackagist |
5.0.0 up to 5.1.5 | 5.1.5 |
symfony/symfonyPackagist |
5.0.0 up to 5.1.5 | 5.1.5 |
symfony/http-kernelPackagist |
4.3.0 up to 4.4.13 | 4.4.13 |
symfony/symfonyPackagist |
4.3.0 up to 4.4.13 | 4.4.13 |
symfonyBitnami |
4.4.0 up to 4.4.13, 5.1.0 up to 5.1.5 | 4.4.135.1.5 |
symfonyDebian:12 |
before 4.4.13+dfsg-1 | 4.4.13+dfsg-1 |
symfonyDebian:13 |
before 4.4.13+dfsg-1 | 4.4.13+dfsg-1 |
symfonyDebian:14 |
before 4.4.13+dfsg-1 | 4.4.13+dfsg-1 |
symfony/http-kernelPackagist |
4.3.0 up to 4.4.13, plus listed versions v4.3.0v4.3.1v4.3.10v4.3.11v4.3.2 Show 23 moreShow lessv4.3.3v4.3.4v4.3.5v4.3.6v4.3.7v4.3.8v4.3.9v4.4.0v4.4.0-BETA1v4.4.0-BETA2v4.4.0-RC1v4.4.1v4.4.10v4.4.11v4.4.12v4.4.2v4.4.3v4.4.4v4.4.5v4.4.6v4.4.7v4.4.8v4.4.9 |
4.4.13 |
symfony/http-kernelPackagist |
5.0.0 up to 5.1.5, plus listed versions v5.0.0v5.0.1v5.0.10v5.0.11v5.0.2 Show 15 moreShow lessv5.0.3v5.0.4v5.0.5v5.0.6v5.0.7v5.0.8v5.0.9v5.1.0v5.1.0-BETA1v5.1.0-RC1v5.1.0-RC2v5.1.1v5.1.2v5.1.3v5.1.4 |
5.1.5 |
symfony/symfonyPackagist |
4.3.0 up to 4.4.13, plus listed versions v4.3.0v4.3.1v4.3.10v4.3.11v4.3.2 Show 23 moreShow lessv4.3.3v4.3.4v4.3.5v4.3.6v4.3.7v4.3.8v4.3.9v4.4.0v4.4.0-BETA1v4.4.0-BETA2v4.4.0-RC1v4.4.1v4.4.10v4.4.11v4.4.12v4.4.2v4.4.3v4.4.4v4.4.5v4.4.6v4.4.7v4.4.8v4.4.9 |
4.4.13 |
symfony/symfonyPackagist |
5.0.0 up to 5.1.5, plus listed versions v5.0.0v5.0.1v5.0.10v5.0.11v5.0.2 Show 15 moreShow lessv5.0.3v5.0.4v5.0.5v5.0.6v5.0.7v5.0.8v5.0.9v5.1.0v5.1.0-BETA1v5.1.0-RC1v5.1.0-RC2v5.1.1v5.1.2v5.1.3v5.1.4 |
5.1.5 |
History
| Recorded | Changed | Sources |
|---|---|---|
| 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-2020-15094 is a high vulnerability (CVSS 8.0) in Sensiolabs Httpclient, published September 2, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 3.04%, the 87th percentile. Fixed in symfony/http-kernel 5.1.5.
References
github.com/symfony/symfony/security/advisories/GHSA-754h-5r27-7x3r
github.com/symfony/symfony/commit/d9910e0b33a2e0f993abff41c6fbc86951b66d78
packagist.org/packages/symfony/symfony
packagist.org/packages/symfony/http-kernel
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/VAQJXAKWPMWB7OL6QPG2ZSEQZYYPU5RC
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/HNGUWOEETOFVH4PN3I3YO4QZHQ4AUKF3
Show 9 moreShow less
nvd.nist.gov/vuln/detail/CVE-2020-15094
lists.fedoraproject.org/archives/list/[email protected]/message/VAQJXAKWPMWB7OL6QPG2ZSEQZYYPU5RC
lists.fedoraproject.org/archives/list/[email protected]/message/HNGUWOEETOFVH4PN3I3YO4QZHQ4AUKF3
github.com/FriendsOfPHP/security-advisories/blob/master/symfony/http-kernel/CVE-2020-15094.yaml
github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2020-15094.yaml
symfony.com/cve-2020-15094
github.com/advisories/GHSA-754h-5r27-7x3r
security-tracker.debian.org/tracker/CVE-2020-15094
github.com/symfony/symfony