Cisco Talos ha informado de una importante falla de seguridad , identificada como CVE-2023-49606, en el software ampliamente utilizado Tinyproxy. Esta vulnerabilidad, derivada del manejo inadecuado de los encabezados de conexión HTTP, expone los sistemas a una posible ejecución remota de código, lo que podría permitir a los atacantes tomar el control de los servidores afectados.
DESCRIPCIÓN GENERAL DE LA VULNERABILIDAD
Tinyproxy, un proxy HTTP minimalista de código abierto, está diseñado para brindar simplicidad y eficiencia, lo que lo hace popular en entornos donde se requieren servidores proxy livianos. La vulnerabilidad en cuestión surge en el análisis de los encabezados de conexión HTTP, un componente fundamental destinado a especificar qué encabezados son persistentes durante una sesión HTTP.
Según el informe de vulnerabilidad de Cisco Talos (TALOS-2023-1889), versiones específicas de Tinyproxy, concretamente 1.11.1 y 1.10.0, se ven afectadas. La falla existe en la remove_connection_headers
función de Tinyproxy, donde puede ocurrir un error de uso después de la liberación. Este tipo de error de software es particularmente peligroso ya que puede provocar daños en la memoria, proporcionando al atacante una vía para ejecutar código arbitrario en la máquina host.
DESGLOSE TÉCNICO
El problema surge cuando Tinyproxy maneja encabezados HTTP que se supone deben eliminarse de acuerdo con las Connection
directivas del encabezado. Si un atacante manipula los encabezados Connection
o , puede provocar la reutilización de la memoria previamente liberada. Proxy-Connection
Este escenario de uso después de la liberación se activa de la siguiente manera:
- Tinyproxy itera sobre los encabezados especificados en el encabezado
Connection
oProxy-Connection
. - Cada encabezado especificado se elimina de un almacén clave-valor (hashofheaders) y posteriormente se libera su memoria.
- Sin embargo, debido a un error en la gestión de estos encabezados, la memoria liberada se puede reutilizar antes de que se complete la función, lo que provoca daños en la memoria.
Esta vulnerabilidad es particularmente preocupante porque puede explotarse con una simple solicitud HTTP con formato incorrecto, lo que facilita que un atacante aproveche y potencialmente se apodere del sistema que ejecuta Tinyproxy.
EXPLOTABILIDAD E IMPACTO
La puntuación CVSSv3 para esta vulnerabilidad es 9,8 (crítica), lo que subraya su gravedad. Un atacante no necesita acceso autenticado al sistema de destino, lo que lo hace accesible para cualquier entidad maliciosa que pueda enviar solicitudes HTTP al proxy afectado. Los impactos potenciales incluyen acceso no autorizado, violaciones de datos, interrupción del servicio y, en casos graves, compromiso total del sistema.
Un problema de uso después de la liberación ocurre cuando una aplicación continúa usando una referencia de memoria (puntero) después de haber liberado la memoria a la que hace referencia el puntero. Esto puede provocar comportamientos impredecibles, incluidos bloqueos de aplicaciones, corrupción de datos y ejecución de código arbitrario.
EJEMPLO DE EXPLOTACIÓN PARA CVE-2023-49606
Configuración del escenario: imagine un escenario en el que un servidor ejecuta Tinyproxy versión 1.11.1. Se sabe que esta versión tiene una vulnerabilidad de uso después de la liberación en la forma en que procesa los encabezados de conexión HTTP.
Explotación paso a paso:
- Solicitud HTTP inicial por parte del atacante:
- El atacante crea una solicitud HTTP que incluye
Connection
encabezados especialmente diseñados. El objetivo es manipular estos encabezados para activar la condición de uso después de la liberación. - Ejemplo de solicitud HTTP:
- GET / HTTP/1.1
- Host: vulnerable-proxy.com
- Connection: keep-alive, maliciousHeader
- maliciousHeader: freeThis
- El atacante crea una solicitud HTTP que incluye
- Procesando la Solicitud:
- Tinyproxy recibe la solicitud y analiza los encabezados. Según las especificaciones, debe eliminar los encabezados que figuran en el
Connection
encabezado después de procesar la solicitud. - Se llama a la
remove_connection_headers
función para manejar esta tarea.
- Tinyproxy recibe la solicitud y analiza los encabezados. Según las especificaciones, debe eliminar los encabezados que figuran en el
- Activando el uso después de la liberación:
- Durante el procesamiento, Tinyproxy elimina
maliciousHeader
y libera la memoria asociada a él. Sin embargo, debido a una falla en la administración de la memoria del proxy, esta memoria liberada podría reasignarse para nuevos datos sin dejar de ser referenciada por el proceso en curso. - Supongamos que la memoria liberada se reasigna rápidamente y se llena con datos controlados por el atacante a través de otra parte de la aplicación (u otra solicitud procesada simultáneamente).
- Durante el procesamiento, Tinyproxy elimina
- Explotando la memoria liberada:
- El atacante anticipa que Tinyproxy accederá nuevamente a esta memoria liberada (y ahora reasignada) antes de que se complete la función. Si esta memoria ahora contiene código ejecutable o datos creados por el atacante, es posible que la aplicación la ejecute o la utilice incorrectamente.
- Por ejemplo, si la ubicación de la memoria se utiliza para almacenar un puntero de función, el atacante podría sobrescribir este puntero con la dirección de su código malicioso.
- Ejecutando código arbitrario:
- Cuando Tinyproxy intenta acceder a la memoria “liberada” como parte de sus operaciones habituales (por ejemplo, para registrar detalles o continuar procesando encabezados), sin darse cuenta ejecuta el código señalado por el puntero sobrescrito.
- Esto podría permitir al atacante ejecutar código arbitrario en el servidor que ejecuta Tinyproxy, dándole potencialmente control total sobre el servidor.
Ejemplo de impacto malicioso:
- El atacante podría instalar puertas traseras, filtrar datos confidenciales, lanzar más ataques desde el servidor comprometido o interrumpir las operaciones del servidor.
MITIGACIÓN Y RESPUESTA
A partir de la última actualización de Cisco Talos, no ha habido ningún parche oficial o lanzamiento de mantenimiento por parte de los mantenedores de Tinyproxy para corregir esta vulnerabilidad. Se recomienda a las organizaciones que utilizan Tinyproxy que supervisen de cerca sus sistemas para detectar actividades inusuales e implementen medidas de seguridad adicionales hasta que haya un parche disponible. Esto puede incluir:
- Implementar firewalls de aplicaciones web (WAF) para filtrar encabezados HTTP maliciosos.
- Aislar el servidor proxy de las redes internas críticas.
- Actualizar periódicamente todo el software a las últimas versiones siempre que sea posible.
Para los usuarios y administradores de Tinyproxy, es fundamental comprender la mecánica técnica de esta vulnerabilidad y mantenerse atentos a la supervisión del tráfico de su red. Se recomienda tomar medidas inmediatas para mitigar los riesgos asociados con esta vulnerabilidad crítica hasta que se emita una solución permanente.
Es un conocido experto en seguridad móvil y análisis de malware. Estudió Ciencias de la Computación en la NYU y comenzó a trabajar como analista de seguridad cibernética en 2003. Trabaja activamente como experto en antimalware. También trabajó para empresas de seguridad como Kaspersky Lab. Su trabajo diario incluye investigar sobre nuevos incidentes de malware y ciberseguridad. También tiene un profundo nivel de conocimiento en seguridad móvil y vulnerabilidades móviles.
Envía tips de noticias a info@noticiasseguridad.com o www.instagram.com/iicsorg/
También puedes encontrarnos en Telegram www.t.me/noticiasciberseguridad