Seguridad · 12 de noviembre de 2026

También publicado en English, 한국어, Italiano

Casi mil conmutadores Zyxel fueron comprometidos mediante una vulnerabilidad que no fue protegida por un parche anterior

Investigadores de Binarly descubrieron que un parche de junio para los conmutadores Zyxel GS1900 no protegía contra un exploit que los atacantes utilizaron para comprometer casi mil dispositivos. Los ciberdelincuentes explotaron una nueva vulnerabilidad de día cero que permitía ejecutar comandos con privilegios de root sin autenticación.

La vulnerabilidad recibió el identificador CVE-2026-107441 y afecta a diez modelos de conmutadores de la serie GS1900. El defecto es un error de escritura fuera de los límites del búfer en un componente que procesa solicitudes hacia la interfaz web de administración del dispositivo. Para explotar la vulnerabilidad, un atacante solo necesita acceso de red a la interfaz web del conmutador y enviar una solicitud HTTP especialmente elaborada.

Zyxel evaluó la gravedad de este problema en 8,8 puntos en la escala CVSS, mientras que los especialistas de Binarly le asignaron una puntuación de 9,8 puntos.

La vulnerabilidad CVE-2026-107441 está estrechamente relacionada con otro problema. En junio de 2026, los desarrolladores de Zyxel corrigieron la vulnerabilidad CVE-2026-7273 mediante el lanzamiento del firmware actualizado versión 2.90 Parche 2. El defecto corregido entonces también estaba vinculado al mecanismo de procesamiento de parámetros HTTP y a la falta de validación de su cantidad.

Analistas de GreyNoise advirtieron que observaban ataques contra conmutadores de la serie GS1900, y los atacantes ya habían comprometido 996 dispositivos en 48 países. Los atacantes recopilaban configuraciones, hashes de credenciales de root e información de redes desde los dispositivos comprometidos.

El parche de junio resultó ser incompleto. Los desarrolladores agregaron una verificación de la cantidad de parámetros, pero no limitaron el tamaño de cada uno, y la verificación se realizaba después de copiar los datos en la memoria.

Inicialmente, los expertos de GreyNoise asociaban estos ataques con el defecto CVE-2026-7273, pero la investigación publicada por Binarly mostró que los atacantes continuaron explotando el problema después del lanzamiento del parche.

Especialistas de Binarly informan que el 17 de septiembre descubrieron un exploit escrito en Python para conmutadores Zyxel en un servidor vinculado a la infraestructura de la puerta trasera JITTERLY, el rootkit SIXZUT y la campaña de malware Red Heron. El análisis de este exploit reveló un error en el componente CGI del firmware Zyxel GS1900 que procesa solicitudes HTTP hacia la interfaz web del conmutador.

Para los parámetros de tales solicitudes, el programa utilizaba un área de memoria diseñada para un máximo de 140 elementos, pero no limitaba el tamaño de cada uno. El exploit enviaba un parámetro 140 excesivamente grande que se extendía más allá de la memoria asignada y sobrescribía el contador de parámetros. Como el siguiente parámetro se escribía fuera de los límites del búfer, esto permitía a los atacantes lograr la ejecución de comandos arbitrarios con privilegios de root.

Aunque en los firmware Parche 2 los desarrolladores agregaron una verificación de la cantidad de parámetros procesados, se ejecutaba demasiado tarde, después de copiar los datos en la memoria. Por lo tanto, el exploit de los atacantes lograba dañar el contador antes de que se activara la verificación y continuaba funcionando incluso después del lanzamiento de las correcciones.

Especialistas de Binarly notificaron a los desarrolladores de Zyxel sobre el problema encontrado el 29 de septiembre, después de lo cual la empresa confirmó la existencia de una vulnerabilidad separada que recibió el identificador CVE-2026-107441.

Para eliminar la nueva vulnerabilidad, los desarrolladores modificaron nuevamente el mecanismo de procesamiento de parámetros HTTP: ahora la cantidad se verifica antes de escribir los datos en la memoria y el tamaño de cada parámetro está limitado. La corrección se incluyó en el firmware versión 2.90 Parche 3, lanzado a finales de octubre.