Vulnerabilidad en Arduino-esp32 (CVE-2025-53007)
Gravedad CVSS v4.0:
ALTA
Tipo:
CWE-113
Neutralización incorrecta de secuencias CRLF en cabeceras HTTP (División de respuesta HTTP)
Fecha de publicación:
26/06/2025
Última modificación:
26/06/2025
Descripción
Arduino-esp32 proporciona un núcleo Arduino para el ESP32. Las versiones anteriores a la 3.3.0-RC1 y la 3.2.1 contienen una vulnerabilidad de división de respuesta HTTP. La función `sendHeader` toma una entrada arbitraria para el nombre y el valor del encabezado HTTP, los concatena en una línea de encabezado HTTP y la añade a los encabezados de respuesta HTTP salientes. No se realiza ninguna validación ni depuración de los parámetros `name` ni `value` antes de que se incluyan en la respuesta HTTP. Si un atacante puede controlar la entrada de `sendHeader` (ya sea directa o indirectamente), podría inyectar caracteres de retorno de carro (`\r`) o salto de línea (`\n`) en el nombre o el valor del encabezado. Esto podría permitirle inyectar encabezados adicionales, manipular la estructura de la respuesta HTTP, potencialmente inyectar una respuesta HTTP completamente nueva (división de respuesta HTTP) o provocar confusión de encabezados u otros ataques al protocolo HTTP. Las versiones 3.3.0-RC1 y 3.2.1 contienen una solución para el problema.
Referencias a soluciones, herramientas e información
- https://github.com/espressif/arduino-esp32/blob/9e61fa7e4bce59c05cb17c15b11b53b9bafca077/libraries/WebServer/src/WebServer.cpp#L504-L521
- https://github.com/espressif/arduino-esp32/blob/9e61fa7e4bce59c05cb17c15b11b53b9bafca077/libraries/WebServer/src/WebServer.cpp#L577-L582
- https://github.com/espressif/arduino-esp32/commit/21640ac82a1bb5efa8cf0b3841be1ac80add6785
- https://github.com/espressif/arduino-esp32/security/advisories/GHSA-5476-9jjq-563m