I've just released Symfony 2.0.19 and 2.1.4. Both releases contain a security fix.
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 (
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:
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('220.127.116.11')); // 18.104.22.168 being the IP address of a trusted reverse proxy
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: