← voltar
CVE-2010-4345highsob ataqueCWE-77

CVE-2010-4345

91Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 7.8epss 18%
da publicação à arma2 dias
Publicada no NVD14 de dez.
1ª PoC+2d
metasploit7 de dez.
CISA KEV+4119d
probabilidade de exploração
18%top 3% das CVEs
exploração observada
simCISA + VulnCheck
1 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-04-15

Apply updates per vendor instructions.

Resumo

Escalação de privilégio local no Exim (≤4.72): o usuário 'exim' pode invocar o binário com um arquivo de configuração alternativo (-C) contendo diretivas de expansão como spool_directory, e essas diretivas com ${run{...}} são executadas como root porque o binário Exim é setuid-root. A falha importa porque foi explorada ativamente em conjunto com uma RCE remota separada (CVE-2010-4344) que dá o primeiro acesso como usuário exim — a cadeia completa vira root remoto.

Detalhamento técnico

O Exim roda como setuid-root para poder escutar em portas privilegiadas e escrever no spool. Historicamente, o usuário 'exim' (ou um usuário 'trusted') tinha permissão para chamar o binário com a flag -C, apontando para um arquivo de configuração arbitrário — recurso pensado para testes e depuração. O problema (CWE-269, gerenciamento inadequado de privilégio, com componente de CWE-78/injeção de comando via expansão de string) é que diretivas dentro desse arquivo de configuração, como spool_directory, passam pelo mecanismo de expansão de string do Exim, que suporta o operador ${run{...}}. Como o processo ainda está com privilégios de root no momento em que processa esse arquivo alternativo, qualquer comando dentro de ${run{...}} nessa diretiva é executado como root, não como o usuário exim.

A causa raiz identificada pelos desenvolvedores do Exim e documentada pelo CERT/CC é que a opção de compilação ALT_CONFIG_ROOT_ONLY — que restringiria o uso de -C com privilégios de root apenas a configurações específicas/confiáveis — não vem habilitada por padrão em várias distribuições. Sem ela, qualquer processo capaz de executar como usuário 'exim' (que é justamente o usuário sob o qual o Exim normalmente já processa mensagens) consegue escalar para root apontando -C para um arquivo próprio.

Essa CVE-2010-4345 foi alocada junto com a CVE-2010-4344 (RCE remota que dá shell como usuário exim via expansão de string mal validada). São duas falhas distintas na mesma thread de disclosure, mas encadeáveis: a 4344 dá acesso como exim, a 4345 eleva esse acesso a root.

Como é explorada

Pré-requisito real: o atacante precisa já ter a capacidade de executar comandos como o usuário 'exim' (ou de controlar um processo que roda com esse UID). Isso pode vir de acesso local legítimo, de um usuário no mesmo grupo, ou — no cenário mais grave observado in the wild — de uma exploração remota prévia como a CVE-2010-4344, que entrega esse shell inicial. Não é uma falha explorável por um usuário remoto anônimo isoladamente; o vetor CVSS (AV:L, PR:L) reflete exatamente essa exigência de privilégio local prévio.

Com shell como 'exim', o ataque consiste em criar um arquivo de configuração próprio contendo uma diretiva expansível (spool_directory foi a usada na demonstração pública) com um operador ${run{...}} embutindo o comando desejado, e invocar o binário Exim com -C apontando para esse arquivo. Se o binário não foi compilado com ALT_CONFIG_ROOT_ONLY, a expansão ocorre com os privilégios de root ainda ativos, executando o comando arbitrário como root.

A CISA lista a CVE-2010-4345 no catálogo KEV com confirmação de exploração ativa desde a época da divulgação (dezembro de 2010), e existem módulo Metasploit e PoC públicos, o que reduz a complexidade de exploração para quase trivial uma vez obtido o acesso como usuário exim. O CERT/CC documentou o caso como descoberto justamente por análise de exploração real (Sergey Kononenko), não por pesquisa acadêmica prévia.

Versões

Afetadas
Exim 4.72 e versões anteriores (conforme descrição oficial da CVE).
Corrigidas em
Correção publicada pelos mantenedores do Exim via patch em 09/12/2010 (mensagem na lista de discussão referenciada abaixo); recomenda-se confirmar o número exato de versão/pacote corrigido na distribuição usada, pois as fontes consultadas não especificam um número único de forma explícita.

Como se proteger

A correção oficial dos mantenedores do Exim foi publicada como patch na lista de discussão em 09/12/2010 e incorporada nas versões subsequentes do software; múltiplas distribuições (SUSE, Red Hat) trataram o caso como update de pacote a partir de dezembro de 2010. Atualize para a versão do Exim que inclui esse patch na sua distribuição — confirme o número exato no changelog oficial ou no pacote da sua distro, já que as fontes consultadas não fixam um único número de versão corrigida de forma unânime.

Se atualizar não for possível de imediato, o paliativo documentado pelo próprio CERT/CC é garantir que o binário Exim tenha sido compilado com a opção ALT_CONFIG_ROOT_ONLY habilitada. O custo real disso: o usuário 'exim' perde a capacidade de invocar -C com um arquivo de configuração alternativo e ainda obter privilégios de root — cenários legítimos que dependiam disso (múltiplas configurações operando com privilégio elevado) deixam de funcionar e precisam ser redesenhados.

Não existe mitigação eficaz via WAF ou controle de borda, porque a falha é inteiramente local e pós-exploração — ela não trafega em rede. Restringir quem pode obter shell como usuário 'exim' (isolamento de processo, remoção de binários setuid não usados, hardening geral de host) reduz a superfície, mas não substitui a correção no binário/opção de compilação.

Como detectar

Em nível de host, procure invocações do binário Exim com a flag -C fora de contextos administrativos esperados, especialmente originadas pelo UID/usuário 'exim' e apontando para arquivos de configuração fora dos diretórios padrão. Auditoria de execução (auditd/execve) que capture argumentos de linha de comando é o sinal mais confiável, já que não há assinatura de rede — a exploração é inteiramente local, pós-comprometimento.

Como pré-condição comum é obter shell como 'exim' via CVE-2010-4344, correlacione também logs do próprio Exim (main log, panic log) por erros de expansão de string ou reinícios anômalos do processo por volta do momento da escalada, e verifique arquivos de configuração temporários criados por processos com UID exim pouco antes de uma execução com privilégio root inesperada.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
Exim 4.72 and earlier allows local users to gain privileges by leveraging the ability of the exim user account to specify an alternate configuration file with a directive that contains arbitrary commands, as demonstrated by the spool_directory directive.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.