Recientemente recibimos esto de una auditoría de seguridad:
PHP es un lenguaje de scripts de propósito general que se puede incrustar en HTML. Existe una vulnerabilidad en las versiones de PHP anteriores a 5.3.12 y 5.4.2 debido a un análisis incorrecto de los parámetros de la cadena de consulta cuando se configura con una configuración basada en CGI (por ejemplo, mod_cgid de Apache). Los parámetros de cadena de consulta procesados suministrados a un archivo PHP arbitrario se analizan incorrectamente como argumentos de línea de comando. Los atacantes remotos podrían aprovechar este problema para pasar los interruptores de la línea de comandos (por ejemplo, -s, -c, -n, -f, -r, -B, -R, -F, -E, -t, etc.) al php-cgi binario y divulgar información de código fuente potencialmente sensible o ejecutar código arbitrario en sistemas vulnerables con los privilegios del servidor web. La explotación exitosa requiere que el servidor HTTP cumpla con la sección 4.4 (La línea de comandos del script) de la solicitud de comentarios de la Interfaz de puerta de enlace común (CGI) (RFC 3875).
Tenemos múltiples entornos PHP, todos ejecutándose como CGI / Fast CGI bajo IIS. Actualizar todas las versiones de PHP es, por supuesto, la solución ideal a largo plazo. Sin embargo, eso llevará algún tiempo, pruebas y planificación. Algunos de los servidores son administrados por hosts externos con los que contratamos, lo que complicará aún más las actualizaciones de la versión.
¿Cómo puedo verificar entornos específicos para esta vulnerabilidad? ¿Hay alguna manera de evitar que los atacantes remotos exploten esto sin una actualización de la versión completa?