Vulnerabilidad crítica en PHP permite un fácil ataque DoS en millones de sitios web

Una vulnerabilidad en una función PHP permitiría a los actores de amenazas evadir las medidas de seguridad implementadas para la protección de aplicaciones web. La función afectada es filter_var(), que permite a los desarrolladores depurar y validar cadenas para diferentes formatos de datos, incluyendo direcciones email, dominios web y URLs.

El especialista en ciberseguridad Jordy Zomer reporta que la función tenía una falla de ajuste de enteros que, al ser activada, hace que el programa esquive la lógica de filtrado. La función toma una cadena de entrada y un argumento numérico que determina la longitud de la cadena. La firma de la función define el argumento de longitud como un “entero con signo”, que divide el rango variable entre valores negativos y positivos.

Sin embargo, otra variable de longitud declarada dentro del cuerpo de la función se definió como un entero sin signo, que solo acepta valores positivos. Esta discrepancia genera un comportamiento errático cuando la función se proporcionaba con cadenas muy grandes, provocando que el flujo del programa saltara la rama de instrucciones que aplicaba filtros para el nombre de host y las marcas de dominio (FILTER_VALIDATE_DOMAIN y FILTER_FLAG_HOSTNAME).

Acorde al investigador, debido a que el filtro ya no es válido, cualquier código que dependa de él como control de seguridad puede pasarse por alto, resultando en múltiples errores de seguridad.

Zoomer agrega que esta falla permitiría el despliegue de ataques de denegación de servicio (DoS) contra servidores web PHP con datos ligeramente superiores a 2 GB: “La mejor recomendación es utilizar los mecanismos de escape apropiados cuando coloque algo en un contexto diferente al que tenía antes”, menciona el investigador.

Aunque el escenario de ataque sin duda es serio, la falla se activa solo con una entrada de usuario muy grande, lo que representa un problema para su explotación: “Es poco probable que este error tenga un gran impacto, debido al hecho básico de que solo influye en una subfunción específica en una función específica, además de que requiere una variable de más de 4GB”.

Cualquier aplicación PHP configurada de forma adecuada debe tener límites de memoria y controles de entrada que no permitan datos de entrada de 4 GB para nombres de dominio, factor que limita aún más el ataque.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).