CSIRTCV

Está usted visitando una publicación en la hemeroteca de CSIRT-CV.
Para acceder al portal y contenido actual, visite https://www.csirtcv.gva.es

10/05/2013

Ejecución de código arbitrario en servidores nginx

Greg MacManus ha descubierto y publicado un grave fallo de seguridad en nginx, cuando se procesan peticiones HTTP "por bloques" (chunked transfer), que puede permitir a un atacante ejecutar código arbitrario.

Riesgo: Alto

Nginx es un servidor web, open source y desarrollado casi íntegramente en el lenguaje C, lo que le proporciona un alto rendimiento aprovechando al máximo los recursos del sistema. Una prueba de ello es que viene por defecto instalado en algunas distribuciones para Raspberry Pi. También puede realizar la función de servidor Proxy inverso para HTTP, SMTP, POP3 e IMAP.

El error descubierto produce un desbordamiento de memoria intermedia basada en pila que generaría en una denegación de servicio del servidor. Al ser un desbordamiento de memoria, se podría producir una ejecución de código arbitrario en el lado del servidor con los permisos del servidor nginx.

Para solucionar el error se han incluido una comprobación para que el tamaño no sea inferior a 0 al realizar esta petición, en el archivo 'src/http/ngx_http_parse.c'.

Sistemas Afectados:

El fallo se ha descubierto en las versiones 1.3.9 (de noviembre de 2012) y 1.4.0, y corregido en la 1.5.0 y la 1.4.1 respectivamente.

Referencias:

CVE-2013-2028

Solución:

Se puede actualizar a las nuevas versiones desde su página de descargas.

Se ha publicado una contramedida, si no se desea actualizar el servidor por alguna razón, que consiste en incluir un fragmento de código en los bloques "server" de la configuración, que evita que se use el tipo de transferencia por bloques.

Notas:

Hispasec una-al-dia
nginx download

nginx - patch.2013.chunked
nginx security advisory (CVE-2013-2028)

Fuente: Hispasec una-al-día

CSIRT-CV