Una sobrelectura del montón en el proxy web de Squid puede filtrar la solicitud HTTP en texto claro de otro usuario, incluidas las credenciales o tokens de sesión que lleva, a cualquiera que ya tenga permiso para enviar tráfico a través del mismo proxy.
El error se remonta a un 1997 cambio de análisis de FTP y todavía está activo en la configuración predeterminada de Squid. Investigadores de Calif.io lo reveló en junio y lo nombró calamar (CVE-2026-47729), después de Heartbleed, que filtró memoria de la misma manera.
Squid describe esto como un ataque de un cliente de confianza: alguien que ya tiene permiso para usar el proxy, no cualquier host aleatorio en Internet. Eso coincide con el hogar habitual de Squid, redes compartidas como escuelas, oficinas y Wi-Fi público. En esas configuraciones, el atacante es simplemente otro usuario del mismo proxy.
La filtración también llega sólo al tráfico que Squid puede leer. HTTPS normal recorre un túnel CONNECT opaco, por lo que Squid nunca ve su interior; el tráfico expuesto es HTTP de texto sin cifrar, además de configuraciones de terminación TLS donde Squid descifra e inspecciona.
El atacante también necesita que el proxy llegue a un servidor FTP que controla en el puerto 21. Tanto FTP como ese puerto están activados de forma predeterminada.
Cómo funciona la fuga
El error se encuentra en el analizador de listado de directorios FTP de Squid. Para manejar servidores NetWare antiguos que rellenaban listados con espacios adicionales, el código omite los espacios en blanco con un bucle: while (strchr(w_space, *copyFrom)) ++copyFrom;.
Si el servidor FTP del atacante envía una línea de listado que termina justo después de la marca de tiempo, sin nombre de archivo, copyFrom aterriza en el terminador nulo de la cadena. strchr trata esa terminación NUL como parte de la cadena que busca, por lo que devuelve un puntero en lugar de NULL y el bucle nunca se detiene. Sale del final del búfer y xstrdup copia lo que sigue al atacante como un nombre de archivo.
Los bytes filtrados son la parte útil. Squid reutiliza los buffers de memoria liberados sin ponerlos a cero, por lo que un buffer de 4 KB que recientemente contuvo la solicitud HTTP de una víctima todavía contiene la mayor parte. Una línea FTP corta sobrescribe sólo los primeros bytes; la lectura excesiva devuelve el resto.
La demostración de Calif extrae un encabezado de Autorización de una víctima que comparte el mismo proxy, suficiente para actuar como ese usuario. El código de prueba de concepto es públicoy hasta el momento no se ha informado de explotación en la naturaleza.
que hacer
Si aplica el parche, verifique la solución, no solo la versión. Confirme que la guardia esté en FtpGateway.cc, o verifique el backport de su distribución, ya que las distribuciones envían sus propias compilaciones (paquetes Debian Squid 5.7).
El hilo público sigue siendo inconsistente: el mantenedor Amos Jeffries primero dijo que Squid 7.6 tenía la solución, luego corregido eso a 7.7y el 22 de junio Salvatore Bonaccorso de Debian tomó nota del compromiso al que se hace referencia Parece que ya está en 7.6.
La solución es pequeña, una verificación de terminador nulo antes de que las llamadas strchr vulnerablesfusionado con la rama de desarrollo en abril y v7 en mayo. Squid 7.6 parchea por separado CVE-2026-50012, un desbordamiento del montón cache_digest no relacionado.
La medida más limpia es la que recomiendan los investigadores de todos modos: desactivar FTP. Chromium eliminó FTP hace años y la mayoría de las redes casi no lo transportan, por lo que al desactivarlo se elimina esta superficie de ataque de forma gratuita, independientemente de la versión que ejecute.
El riesgo es real pero limitado. SUSE lo califica como moderado, CVSS6.5y el vector explica la puntuación: el atacante necesita acceso proxy (privilegios bajos) y el único impacto es la confidencialidad, nada sobre la integridad o la disponibilidad.
Calif le da crédito a Claude Mythos Preview de Anthropic, el modelo detrás del Proyecto Glasswing, por detectar la peculiaridad de strchr casi de inmediato; el mismo tipo de error enterrado del analizador que los agentes de IA han estado apareciendo en otros lugares, incluso en FFmpeg. Calif insinúa que el código FTP de Squid puede no ser el último lugar donde olvidó dejar de leer.




