
CVE-2012-1823 - Injeção de argumento CGI PHP Execução Remota de Código (RCE)
Severidade: Crítico (CVSS 9.8)
CVE: CVE-2012-1823
Publicado: 11 de Maio de 2012
Software Afetado: PHP rodando em modo CGI (php-cgi)
Tipo de Vulnerabilidade: Injeção de Argumentos / Execução Remota de Código (RCE)
Vetor de Ataque: Rede
Autenticação Necessária: Nenhuma
CVE-2012-1823 é uma das vulnerabilidades de Execução Remota de Código mais significativas já descobertas no PHP. A vulnerabilidade afeta instalações PHP configuradas para executar através da Interface de Gateway Comum (CGI), permitindo que um atacante não autenticado execute código PHP arbitrário remotamente.
Diferente de vulnerabilidades que exigem falhas dentro de uma aplicação web, este problema existe no próprio PHP quando implantado usando php-cgi. Como a vulnerabilidade existe no nível do interpretador, toda aplicação PHP hospedada em um servidor afetado se torna vulnerável, independentemente de a aplicação conter falhas de codificação.
A vulnerabilidade tornou-se amplamente divulgada em 2012 devido à sua simplicidade, confiabilidade e exploração generalizada na Internet. Mesmo anos após a divulgação, varreduras em toda a Internet continuam identificando sistemas vulneráveis, e a vulnerabilidade permanece incluída em frameworks de exploração e ferramentas de detecção defensivas. :contentReference[oaicite:0]{index=0}
A vulnerabilidade existe dentro da implementação CGI do PHP (php-cgi).
Normalmente, os parâmetros de consulta HTTP são destinados a serem passados para scripts PHP como entrada do usuário.
No entanto, o PHP processa incorretamente strings de consulta especialmente criadas que não contêm um caractere de igual (=).
Em vez de tratar a string de consulta puramente como dados do usuário, o PHP interpreta erroneamente partes dela como argumentos de linha de comando passados diretamente para o executável PHP.
Como o PHP suporta numerosas opções de linha de comando (como -d), um atacante pode sobrescrever as opções de configuração do PHP em tempo de execução durante o processamento da requisição.
Isso permite que o atacante:
A causa raiz é o tratamento inadequado de php_getopt() dentro de:
sapi/cgi/cgi_main.c
Especificamente, o PHP falhou em ignorar corretamente a análise de linha de comando ao processar strings de consulta maliciosas que não possuem um sinal de igual (=). :contentReference[oaicite:1]{index=1}
O executável CGI aceita parâmetros de linha de comando.
Por exemplo:
php-cgi -d allow_url_include=1
Normalmente, esses parâmetros deveriam se originar apenas do sistema operacional.
Em vez disso, o PHP permitiu incorretamente que requisições HTTP injetassem esses parâmetros através de URLs especialmente criadas.
O atacante podia, portanto, manipular a configuração do PHP em tempo de execução antes da execução do script alvo.
Isso efetivamente transformou uma simples requisição HTTP em execução de linha de comando contra o php-cgi.
As seguintes versões do PHP são vulneráveis:
| Versão | Status |
|---|---|
| PHP < 5.3.12 | Vulnerável |
| PHP 5.4.x < 5.4.2 | Vulnerável |
Apenas instalações usando modo CGI (php-cgi) são afetadas.
PHP rodando como:
geralmente não são afetados pelo CVE-2012-1823 em si. :contentReference[oaicite:2]{index=2}
Um atacante precisa apenas de:
A vulnerabilidade é totalmente explorável remotamente.
O ataque normalmente segue estas etapas:
Uma vez obtida a execução de código, os atacantes comumente:
A exploração bem-sucedida resulta em comprometimento completo da aplicação PHP.
As consequências potenciais incluem:
Se o PHP executar com privilégios elevados, o comprometimento a nível de sistema também pode ser possível.
| Métrica | Valor |
|---|---|
| Pontuação Base | 9.8 |
| Severidade | Crítico |
| Vetor de Ataque | Rede |
| Complexidade do Ataque | Baixa |
| Privilégios Necessários | Nenhum |
| Interação do Usuário | Nenhuma |
| Confidencialidade | Alta |
| Integridade | Alta |
| Disponibilidade | Alta |
Várias características tornaram o CVE-2012-1823 particularmente impactante:
Sua combinação de facilidade de exploração e impacto severo levou a extensos ataques no mundo real e sua inclusão no catálogo de Vulnerabilidades Conhecidas Exploradas (KEV) da CISA. :contentReference[oaicite:4]{index=4}
Administradores devem verificar:
Indicadores incluem:
Ferramentas de varredura de segurança como Nuclei, Nessus, OpenVAS e módulos Metasploit podem detectar configurações vulneráveis. :contentReference[oaicite:5]{index=5}
Mitigações recomendadas incluem:
| Data | Evento |
|---|---|
| Maio 2012 | Vulnerabilidade divulgada publicamente |
| Maio 2012 | Correções de segurança lançadas |
| 2012 | Explorações públicas lançadas |
| 2012 | Módulo Metasploit publicado |
| Anos seguintes | Exploração em massa na Internet observada |
| Atual | Continua a aparecer em varreduras de vulnerabilidades e sistemas legados |