CVE-2014-4931
Code injection in the way Symfony implements translation caching in FrameworkBundle
When investigating issue #11093, Jeremy Derussé found a serious code injection issue in the way Symfony implements translation caching in FrameworkBundle.
-
Your Symfony application is vulnerable if you meet the following conditions:
-
You are using the Symfony translation system from FrameworkBundle (so basically if you are using Symfony full-stack -- you are not affected if you are using the Translation component with Silex for instance); You don't sanitize locales coming from a URL (any route with a _locale argument for instance):
When vulnerable, an attacker can submit a non-valid locale value that can contain some PHP code that will be executed by Symfony. That's because the locale value is dumped into a PHP file generated in the cache without being sanitized first.
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
What each source reports
GitHub Advisories Score usedGHSA-wfv7-5x33-v22h
7.5
Code injection in the way Symfony implements translation caching in FrameworkBundle
When investigating issue #11093, Jeremy Derussé found a serious code injection issue in the way Symfony implements translation caching in FrameworkBundle.
-
Your Symfony application is vulnerable if you meet the following conditions:
-
You are using the Symfony translation system from FrameworkBundle (so basically if you are using Symfony full-stack -- you are not affected if you are using the Translation component with Silex for instance); You don't sanitize locales coming from a URL (any route with a _locale argument for instance):
When vulnerable, an attacker can submit a non-valid locale value that can contain some PHP code that will be executed by Symfony. That's because the locale value is dumped into a PHP file generated in the cache without being sanitized first.
- Record
GHSA-wfv7-5x33-v22h- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-94
- Updated
- 2026-11-02
OSVGHSA-wfv7-5x33-v22h
7.5
Code injection in the way Symfony implements translation caching in FrameworkBundle
When investigating issue #11093, Jeremy Derussé found a serious code injection issue in the way Symfony implements translation caching in FrameworkBundle.
-
Your Symfony application is vulnerable if you meet the following conditions:
-
You are using the Symfony translation system from FrameworkBundle (so basically if you are using Symfony full-stack -- you are not affected if you are using the Translation component with Silex for instance); You don't sanitize locales coming from a URL (any route with a _locale argument for instance):
When vulnerable, an attacker can submit a non-valid locale value that can contain some PHP code that will be executed by Symfony. That's because the locale value is dumped into a PHP file generated in the cache without being sanitized first.
- Record
GHSA-wfv7-5x33-v22h- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-94
- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
symfony/framework-bundlePackagist |
2.0.0 up to 2.3.18 | 2.3.18 |
symfony/framework-bundlePackagist |
2.4.0 up to 2.4.8 | 2.4.8 |
symfony/framework-bundlePackagist |
2.5.0 up to 2.5.2 | 2.5.2 |
symfony/symfonyPackagist |
2.0.0 up to 2.3.19 | 2.3.19 |
symfony/symfonyPackagist |
2.4.0 up to 2.4.9 | 2.4.9 |
symfony/symfonyPackagist |
2.5.0 up to 2.5.4 | 2.5.4 |
symfony/framework-bundlePackagist |
2.0.0 up to 2.3.18, plus listed versions 2.0.7v2.0.10v2.0.12v2.0.13v2.0.14 Show 45 moreShow lessv2.0.15v2.0.16v2.0.17v2.0.18v2.0.19v2.0.20v2.0.21v2.0.22v2.0.23v2.0.24v2.0.25v2.0.9v2.1.0v2.1.1v2.1.10v2.1.11v2.1.12v2.1.13v2.1.2v2.1.3v2.1.4v2.1.5v2.1.6v2.1.7v2.1.8v2.1.9v2.2.0v2.2.1v2.2.10v2.2.11v2.2.2v2.2.3v2.2.4v2.2.5v2.2.6v2.2.7v2.2.8v2.2.9v2.3.0v2.3.1v2.3.10v2.3.11v2.3.12v2.3.13v2.3.14 |
2.3.18 |
symfony/framework-bundlePackagist |
2.4.0 up to 2.4.8, plus listed versions v2.4.0v2.4.1v2.4.2v2.4.3v2.4.4v2.4.5v2.4.6v2.4.7 |
2.4.8 |
symfony/framework-bundlePackagist |
2.5.0 up to 2.5.2, plus listed versions v2.5.0v2.5.1 |
2.5.2 |
symfony/symfonyPackagist |
2.0.0 up to 2.3.19, plus listed versions 2.0.42.0.52.0.62.0.7v2.0.10 Show 45 moreShow lessv2.0.11v2.0.12v2.0.13v2.0.14v2.0.15v2.0.16v2.0.17v2.0.18v2.0.19v2.0.20v2.0.21v2.0.22v2.0.23v2.0.24v2.0.25v2.0.9v2.1.0v2.1.0-BETA1v2.1.0-BETA2v2.1.0-BETA3v2.1.0-BETA4v2.1.0-RC1v2.1.0-RC2v2.1.1v2.1.10v2.1.11v2.1.12v2.1.13v2.1.2v2.1.3v2.1.4v2.1.5v2.1.6v2.1.7v2.1.8v2.1.9v2.2.0v2.2.0-BETA1v2.2.0-BETA2v2.2.0-RC1v2.2.0-RC2v2.2.0-RC3v2.2.1v2.2.10v2.2.11 |
2.3.19 |
symfony/symfonyPackagist |
2.4.0 up to 2.4.9, plus listed versions v2.4.0v2.4.1v2.4.2v2.4.3v2.4.4 Show 4 moreShow lessv2.4.5v2.4.6v2.4.7v2.4.8 |
2.4.9 |
symfony/symfonyPackagist |
2.5.0 up to 2.5.4, plus listed versions v2.5.0v2.5.1v2.5.2v2.5.3 |
2.5.4 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | GitHub Advisories, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2014-4931 is a high vulnerability (CVSS 7.5) in symfony/symfony, published May 30, 2024. No source lists public exploit code. Fixed in symfony/framework-bundle 2.3.18.
References
github.com/symfony/symfony/commit/06a80fbdbe744ad6f3010479ba64ef5cf35dd9af.patch
github.com/FriendsOfPHP/security-advisories/blob/master/symfony/framework-bundle/CVE-2014-4931.yaml
github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2014-4931.yaml
symfony.com/blog/security-releases-cve-2014-4931-symfony-2-3-18-2-4-8-and-2-5-2-released
github.com/advisories/GHSA-wfv7-5x33-v22h
Left out here: 41 versions. The JSON record has them.