GitHub Advisoryadvisory · Packagist

GHSA-hx53-jchx-cr52 Symfony2 improper IP based access control

MEDIUM Published 2024-05-30 Modified 2024-05-30 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