GitHub Advisoryadvisory · Packagist
GHSA-hx53-jchx-cr52 Symfony2 improper IP based access control
MEDIUM
Official page ↗
- Ecosystem
- Packagist
- Packages
- symfony/symfony
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
- Weaknesses
- CWE-291
- Reviewed
- 2024-05-30
Affected packages
• Packagist symfony/symfony: >= 2.0.0, < 2.0.19 → fixed in 2.0.19
• Packagist symfony/symfony: >= 2.1.0, < 2.1.4 → fixed in 2.1.4
Description
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 for Symfony 2.0.19
Patch for Symfony 2.1.4
Related
Weakness · CWE (1)
- CWE-291 Reliance on IP Address for Authentication weakness
References
- https://github.com/symfony/symfony/commit/922c2015f61a7205180d423dce1f7365cc2d8460 web
- https://github.com/symfony/symfony/commit/9ce892cf4395e73b136e9b5cd1fae9e91995c93b web
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/2012-11-29.yaml web
- https://github.com/symfony/symfony package
- https://symfony.com/blog/security-release-symfony-2-0-19-and-2-1-4 web