Symfony2 improper IP based access control
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Fixed
No CVSS vector from any source. Fix status from GitHub.
Summary
Damien Tournoud, from the Drupal security team, contacted us two days ago about a security issue in the Request::getClientIp() method when the trust proxy mode is enabled (Request::trustProxyData()). An application is vulnerable if it uses the client IP address as returned by the Request::getClientIp() method for sensitive decisions like IP based access control. To fix this security issue, the following changes have been made to all versions of Symfony2: A new Request::setTrustedProxies() method has been introduced and should be used intead of Request::trustProxyData() to enable the trust proxy mode. It takes an array of trusted proxy IP addresses as its argument: ``` // before (probably in your front controller script) Request::trustProxyData(); ``` ``` // after Request::setTrustedProxies(array('1.1.1.1')); // 1.1.1.1 being the IP address of a trusted reverse proxy ``` The Request::trustProxyData() method has been deprecated (when used, it automatically trusts the latest proxy in the chain -- which is the current remote address): ``` Request::trustProxyData(); ``` ``` // is equivalent to Request::setTrustedProxies(array($request->server->get('REMOTE_ADDR'))); ``` We encourage all Symfony2 users to upgrade as soon as possible. It you don't want to upgrade to the latest version yet, you can also apply the following patches: [Patch](https://github.com/symfony/symfony/compare/fc89d6b...9ce892c.patch) for Symfony 2.0.19 [Patch](https://github.com/symfony/symfony/compare/922c201...e5536f0.patch) for Symfony 2.1.4
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | symfony/symfony (Packagist) | 2.0.0 to before 2.0.19 | 2.0.19 | Patch available | GHSA-hx53-jchx-cr52 |
| — | symfony/symfony (Packagist) | 2.1.0 to before 2.1.4 | 2.1.4 | Patch available | GHSA-hx53-jchx-cr52 |
- symfony/symfony (Packagist) Vendor— Affected 2.0.0 to before 2.0.19 Fixed in 2.0.19 Patch available GHSA-hx53-jchx-cr52
- symfony/symfony (Packagist) Vendor— Affected 2.1.0 to before 2.1.4 Fixed in 2.1.4 Patch available GHSA-hx53-jchx-cr52
Remediation
- Fix · GHSA-hx53-jchx-cr52 symfony/symfony (Packagist) Fixed in 2.0.19 Advisory →
- Fix · GHSA-hx53-jchx-cr52 symfony/symfony (Packagist) Fixed in 2.1.4 Advisory →
Timeline
- 2026-10-03 Threatist record created from GHSA-hx53-jchx-cr52
References
Other 5
- https://github.com/symfony/symfony/commit/922c2015f61a7205180d423dce1f7365cc2d8460
- https://github.com/symfony/symfony/commit/9ce892cf4395e73b136e9b5cd1fae9e91995c93b
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/2012-11-29.yaml
- https://github.com/symfony/symfony
- https://symfony.com/blog/security-release-symfony-2-0-19-and-2-1-4
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences