Exploit de Citrix NetScaler CVE-2026-88772: ruta preautenticación a ejecución de shellcode

Investigadores de ciberseguridad han hecho públicos los detalles técnicos de una vulnerabilidad crítica de seguridad recientemente parcheada en Citrix NetScaler ADC y Gateway, que ha sido explotada activamente en ataques reales.

La vulnerabilidad, identificada como CVE-2026-88772 (puntuación CVSS: 9.5), se describe como un error de desbordamiento de memoria en el manejo del protocolo Datagram Transport Layer Security (DTLS) originado en el motor de procesamiento de paquetes de NetScaler (NSPPE).

Citrix NetScaler ADC y NetScaler Gateway contienen una vulnerabilidad de restricción indebida de operaciones dentro de los límites de un búfer de memoria que podría permitir la ejecución remota de código o denegación de servicio.

Según watchTowr, el problema radica en que NetScaler confía implícitamente en el tamaño de fragmento declarado en el campo fragment_length del encabezado del handshake DTLS (1 byte), mientras que el encabezado indica simultáneamente que el mensaje completo, según el campo length, tiene 120 bytes de longitud.

Esta inconsistencia de análisis puede ser explotada por un atacante para crear un registro malicioso que parezca pequeño, mientras que los datos reales copiados al búfer son mucho más grandes, provocando un desbordamiento.

Por ejemplo, un mensaje de handshake de 120 bytes puede llegar como 120 fragmentos. Cada fragmento tiene length=120, pero cada uno puede tener fragment_length=1. Sus desplazamientos serían 0, 1, 2, y así hasta 119. Una vez que todas las posiciones han llegado, el servidor considera completo el mensaje de 120 bytes. Unir esas piezas se llama reensamblaje.

Cada paquete recibido de 1.459 bytes se almacena en NetScaler Buffers (NSB), que luego se unen en un único búfer temporal de solo 35.840 bytes. Dado que la versión vulnerable no verifica si el siguiente paquete cabe en el búfer temporal, los datos se escriben más allá del final del búfer y provocan un desbordamiento.

Los registros maliciosos le dicen al código de reensamblaje que cada registro proporciona solo un byte de un mensaje de handshake de 120 bytes. Sin embargo, NSPPE mantiene casi todo el registro en un NSB. Después de 120 registros, el mensaje de handshake se considera completo, pero su cadena de NSB contiene aproximadamente 174 KB de datos.

El análisis de watchTowr también encontró que este desbordamiento puede ser weaponizado para desviar el flujo de control a shellcode arbitrario con privilegios de root utilizando la llamada al sistema mprotect() para eludir las protecciones NX (no-execute).

La divulgación se produce un día después de que la empresa de gestión proactiva de exposiciones publicara una prueba de concepto (PoC) para CVE-2026-88771, que ha sido explotada junto con CVE-2026-88772 en ataques del mundo real.

Cybersecurity
Cybersecurity

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *