HTTPoxy - ¿Se ha afectado mi aplicación PHP?

Solution Verified - Updated -

Environment

Red Hat Enterprise Linux 5.x
Red Hat Enterprise Linux 6.x
Red Hat Enterprise Linux 7.x
Red Hat Software Collections para Red Hat Enterprise Linux 6 y 7

Issue

Este incidente aplica cuando usted utiliza PHP en todos los modos típicos de uso - mod_php, CGI, o FastCGI.

Los parámetros súper globales getenv('HTTP_PROXY') y $_SERVER['HTTP_PROXY'] de PHP pueden proporcionar el contenido del encabezamiento Proxy de la solicitud HTTP.

Si el script PHP utiliza Este incidente aplica cuando se utiliza la aplicación Go en modo CGI. En caso de que un script CGI de Go utilice la variable de entorno "HTTP_PROXY" para configurar un proxy HTTP de salida para las subsiguientes solicitudes HTTP, o si su script hace uso de un módulo o de una biblioteca que exponga esta conducta , por ejemplo, el módulo "http" de Go, es posible que el subsiguiente tráfico HTTP que se deriva dentro del script CGI de Go sea redirigido a través de un proxy que está por fuera del control del atacante.

Observe que la extensión curl integrada de PHP que proporciona las vinculaciones a la biblioteca libcurl no es vulnerable por sí misma, la vulnerabilidad es introducida por las bibliotecas PHP que utilizan los métodos antes mencionados para determinar el uso de proxy.

Por favor observe que este es un incidente que solamente se presenta cuando el script PHP se implementa en un servidor HTTP , el cual proporciona el contenido del encabezamiento Proxy de una solicitud HTTP entrante al script PHP.

Resolution

Red Hat ha publicado actualizaciones y guías de mitigación para servidores HTTP, que no les permiten proporcionar el contenido del encabezamiento HTTP Proxy al script PHP. La actualización de su servidor HTTP o la aplicación de la mitigación cerrará este vector y evitará la explotación de esta falla.

Para evitar que el encabezamiento proporcionado del atacante sea utilizado, siga alguno de los siguientes métodos:

  • Configure su cortafuegos de aplicación de red para eliminar el encabezamiento Proxy de las solicitudes HTTP entrantes.
  • Configure su servidor HTTP para eliminar el encabezamiento Proxy antes de invocar los scripts PHP.
    • Cuando utilice el servidor Apache httpd, consulte la solución HTTPoxy - Is my Apache mod_cgi affected? para obtener instrucciones. Las versiones httpd también excluyen automáticamente en encabezamiento Proxy del set de encabezamientos disponibles para scripts.
    • Cuando utilice el servidor nginxr, consulte la solución HTTPoxy - Is my nginx affected? para obtener instrucciones.
  • Modifique sus scripts PHP para que contengan la siguiente declaración hacia lo alto, después de <?php:

      putenv("HTTP_PROXY="); $_SERVER[HTTP_PROXY] = "";
    

    Si está ejecutando PHP en Apache/mod_php, también agregue después de lo que se encuentra arriba:

      apache_putenv('HTTP_PROXY', '');
    

Root Cause

Consulte HTTPoxy - CGI "HTTP_PROXY" variable name clash para obtener más información.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.