En junio de 2024, un equipo de investigadores de Calif.io reveló una vulnerabilidad que ha permanecido latente en el popular proxy web Squid durante casi tres décadas. El fallo, bautizado como Squidbleed, permite a cualquier usuario autorizado a enviar tráfico a través del mismo proxy interceptar y leer las peticiones HTTP en texto plano de otros usuarios que comparten la infraestructura. La consecuencia es la exposición de credenciales, cookies de sesión y cualquier otro dato sensible que viaje sin cifrar.

¿Qué es Squid y por qué es tan extendido?

Squid es un proxy de código abierto, desarrollado inicialmente a finales de los años 90, que funciona como intermediario entre clientes y servidores web. Su arquitectura modular y su capacidad para cachear contenido lo han convertido en una herramienta esencial en entornos corporativos, proveedores de servicios de Internet y redes académicas. Gracias a su flexibilidad, Squid se despliega en millones de servidores alrededor del mundo, gestionando desde accesos a internet corporativos hasta la distribución de contenido multimedia.

El origen de la falla: una decisión de 1997

La raíz del problema se remonta a una modificación introducida en 1997 para mejorar el manejo del protocolo FTP dentro del proxy. Esa pieza de código, aunque diseñada para optimizar la extracción de rutas FTP, contiene un heap over-read: una lectura más allá del límite asignado en la memoria. Cuando Squid procesa peticiones HTTP que pasan por el mismo proceso de análisis, el buffer vulnerable puede revelar fragmentos de datos pertenecientes a otras conexiones concurrentes.

En la práctica, si dos usuarios A y B utilizan el mismo proxy, el atacante (A) puede desencadenar la condición de sobre-lectura y obtener la solicitud HTTP completa de B, incluyendo encabezados como Authorization, Cookie o cualquier parámetro de formulario que no haya sido cifrado mediante TLS.

¿Por qué sigue siendo relevante en 2024?

A primera vista parece sorprendente que una vulnerabilidad de casi 30 años siga activa. La respuesta radica en dos factores clave:

  1. Configuración por defecto: Squid mantiene su configuración original en la mayoría de las instalaciones. La opción vulnerable está habilitada de forma predeterminada, lo que significa que los administradores que no revisan minuciosamente la documentación no la desactivan.
  2. Despliegues internos y externos: Muchas organizaciones utilizan Squid como proxy interno sin TLS de extremo a extremo, confiando en la red corporativa para la seguridad. En esos escenarios, la exposición de datos en texto claro es una amenaza real, sobre todo cuando se manejan credenciales de aplicaciones internas o APIs.

Impacto y alcance potencial

El riesgo no se limita a la mera captura de contraseñas. Un atacante que obtenga tokens de sesión puede suplantar la identidad del usuario objetivo, accediendo a sistemas críticos, bases de datos o servicios en la nube. Además, la fuga de datos puede violar normas de protección de datos como el RGPD o la Ley de Protección de Datos Personales en México, exponiendo a las organizaciones a sanciones legales.

Según los investigadores, la vulnerabilidad es explotable sin necesidad de privilegios elevados; basta con ser un usuario legítimo del proxy. Esto amplía el vector de ataque a cualquier empleado o dispositivo que tenga acceso a la red corporativa.

Respuestas y mitigaciones recomendadas

El proyecto Squid ha emitido un parche que corrige el problema mediante la validación adecuada de los buffers de entrada y la eliminación del código obsoleto de parsing FTP. Se recomienda a los administradores:

  • Actualizar a la última versión de Squid (≥ 5.9) que incluye la corrección.
  • Revisar la configuración: desactivar módulos innecesarios y forzar el uso de TLS (HTTPS) entre clientes y el proxy.
  • Implementar inspección de tráfico: utilizar herramientas de detección de anomalías que alerten sobre patrones de lectura de memoria.
  • Auditar accesos: limitar el número de usuarios que pueden enviar tráfico a través del proxy y aplicar autenticación fuerte.

Lecciones para la comunidad de seguridad

Squidbleed es un recordatorio de que el software legado, aunque robusto, puede albergar vulnerabilidades críticas que permanecen sin ser descubiertas durante décadas. La práctica de "security by design" y la revisión continua de código antiguo son esenciales para evitar sorpresas como esta.

Además, la vulnerabilidad subraya la importancia de cifrar siempre la comunicación entre cliente y servidor, incluso dentro de redes de confianza. El uso de HTTPS debería ser la norma, no la excepción, y los proxies deben configurarse para no romper la cadena de cifrado.

En conclusión, Squidbleed no solo expone una falla técnica, sino que plantea un llamado de atención a los equipos de TI y seguridad: la actualización constante y la revisión de configuraciones heredadas son la primera línea de defensa contra amenazas que pueden provenir de los propios cimientos de la infraestructura.

Próximos pasos

Se espera que la comunidad de código abierto de Squid distribuya rápidamente versiones corregidas y que los principales proveedores de servicios en la nube publiquen guías de mitigación. Mientras tanto, los profesionales de seguridad deben priorizar la evaluación de sus entornos proxy y considerar la migración a soluciones más modernas o la implementación de capas adicionales de cifrado.

La historia de Squidbleed demuestra que, en ciberseguridad, el pasado siempre está al acecho del presente.