← volver
CVE-2018-14634highbajo ataqueCWE-190

CVE-2018-14634

76Vexday Risk Score

Prioriza la corrección. Ella está bajo explotación confirmada por CISA y tiene prueba de concepto pública.

ssvc Actcvss 7.8epss 15%
de la publicación al arma1 días
Publicada en NVD25 sept
1ª PoC+1d
CISA KEV+2680d
probabilidad de explotación
15%top 4% de las CVE
explotación observada
CISA + VulnCheck
4 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2026-02-16

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Resumen

Falha de overflow de inteiro (integer overflow) na função create_elf_tables() do kernel Linux, usada durante o carregamento de binários ELF via execve(). Um usuário local sem privilégios, ao executar um binário SUID (ou qualquer binário com capabilities/privilégios elevados) com argumentos e variáveis de ambiente de tamanho suficientemente grande, pode corromper o cálculo do layout de pilha do processo e escalar privilégios até root. Ficou conhecida publicamente como 'Mutagen Astronomy' e foi reportada pela Qualys Research Labs à Red Hat.

Detalle técnico

O problema está em fs/binfmt_elf.c, na função create_elf_tables(), responsável por montar na pilha do novo processo o vetor de argumentos (argv), o ambiente (envp) e o vetor auxiliar (auxv) durante um execve(). O kernel precisa calcular quanto espaço de pilha é necessário para acomodar essas estruturas; esse cálculo usa aritmética que pode sofrer overflow (CWE-190) quando o volume total de dados de argumentos/ambiente é grande o suficiente. Quando o overflow ocorre, o valor resultante do ponteiro de pilha fica incorreto, e a montagem subsequente de argv/envp/auxv escreve em posições da pilha diferentes das pretendidas.

O atacante controla o conteúdo e o tamanho de argv e envp — ambos são parâmetros diretos de um execve() disparado pelo próprio usuário local. Não é necessário nenhum bug no binário SUID executado: o binário serve apenas como veículo, já que herda privilégios elevados (via bit SUID, SGID ou capabilities) no momento do exec, e é durante essa transição de privilégio que o kernel processa o layout de pilha vulnerável.

A classe de bug (overflow em cálculo de tamanho de pilha para argumentos de processo) já havia motivado discussões anteriores no kernel sobre limites de MAX_ARG_STRLEN e do total combinado de argv+envp; o problema documentado nesta CVE está justamente na insuficiência desses limites/cálculos em determinadas versões, permitindo que a soma de tamanhos chegue a um ponto em que a aritmética de 32/64 bits usada no cálculo de posicionamento da pilha estoura.

O advisory oficial (Red Hat) descreve o efeito como corrupção que resulta em escalonamento de privilégios; não descreve o corte exato de código ou o commit específico, e por isso essa camada mais fina do mecanismo (qual variável estoura, em qual arquitetura) deve ser tratada como análise pública de pesquisadores, não como texto do fornecedor.

Cómo se explota

Pré-requisito central, que a nota do CVSS (PR:L) já sinaliza: o atacante precisa de uma sessão local autenticada, mesmo que com privilégios mínimos. Não há vetor remoto — a exploração depende de invocar localmente um execve() com argv/envp montados sob medida contra um binário que tenha SUID, SGID ou capabilities privilegiadas presente no sistema (qualquer binário desse tipo acessível ao usuário serve, não precisa ser vulnerável por si só).

O segundo pré-requisito, frequentemente omitido em resumos da falha, é recurso: para atingir o ponto de overflow é preciso construir argumentos/ambiente de tamanho muito grande, o que demanda memória disponível ao processo (RAM e/ou limites de recursos — ulimit, cgroups — permissivos). Em sistemas com RLIMIT_AS, RLIMIT_STACK ou limites de memória por cgroup restritivos, a construção do argv/envp necessário pode falhar antes de disparar a condição, o que reduz a explorabilidade prática em containers ou ambientes com quotas agressivas de memória.

A Qualys publicou prova de conceito funcional contra kernels de distribuições como CentOS/RHEL 6 e 7, demonstrando escalonamento de usuário sem privilégios para root. A presença desta CVE no catálogo KEV da CISA confirma exploração ativa registrada, reforçando que, apesar do pré-requisito de acesso local, o impacto é real em ambientes multiusuário, hosts compartilhados e após qualquer comprometimento inicial que dê a um atacante um shell de baixo privilégio.

Versiones

Afectadas
Segundo o fornecedor: kernel Linux nas linhas 2.6.x, 3.10.x e 4.14.x são consideradas vulneráveis (redação da descrição oficial). Em builds Red Hat especificamente: kernel-2.6.32 anterior a 754.6.3.el6 (RHEL 6), kernel-2.6.32 anterior a 504.76.2.el6 (RHEL 6.6 AUS/TUS), kernel-3.10.0 anterior a 862.14.4.el7 (RHEL 7) e kernel-rt-3.10.0 anterior a 862.14.4.rt56.821.el7 (RHEL 7 Real Time).
Corregidas en
Nos builds Red Hat cobertos pelas erratas fornecidas: kernel-2.6.32-754.6.3.el6 (RHEL 6, RHSA-2018:2846), kernel-2.6.32-504.76.2.el6 (RHEL 6.6 AUS/TUS, RHSA-2018:2924), kernel-3.10.0-862.14.4.el7 (RHEL 7, RHSA-2018:2748) e kernel-rt-3.10.0-862.14.4.rt56.821.el7 (RHEL 7 RT, RHSA-2018:2763). As demais erratas listadas (RHSA-2018:2925, 2933, 3540, 3586) cobrem outros ramos EUS/AUS/TUS e arquiteturas do mesmo ciclo de correção, sem detalhamento de build individual nas fontes lidas. Para kernel mainline e outras distribuições, verificar diretamente changelog/advisory do fornecedor específico.

Cómo protegerse

A correção é atualizar o kernel para uma versão corrigida do fornecedor/distribuição em uso. Para Red Hat Enterprise Linux, as correções foram distribuídas via as errata listadas: RHEL 7 (kernel 3.10.0-862.14.4.el7, RHSA-2018:2748), RHEL 7 Real Time (kernel-rt 3.10.0-862.14.4.rt56.821.el7, RHSA-2018:2763), RHEL 6 (kernel 2.6.32-754.6.3.el6, RHSA-2018:2846) e RHEL 6.6 AUS/TUS (kernel 2.6.32-504.76.2.el6, RHSA-2018:2924), além das demais erratas listadas para outros ramos/arquiteturas suportados. Para outras distribuições e para kernel mainline, é preciso confirmar com o fornecedor/mantenedor da própria distribuição qual build já incorpora a correção — a descrição oficial cita como potencialmente vulneráveis as linhas 2.6.x, 3.10.x e 4.14.x, sem detalhar todas as sublinhas corrigidas fora do universo Red Hat.

Se a atualização imediata não for viável, o controle compensatório realista é reduzir a superfície: auditar e remover bits SUID/SGID e capabilities desnecessárias de binários no sistema, já que a exploração depende de existir pelo menos um binário privilegiado executável pelo usuário local; e aplicar limites de memória por processo/usuário (RLIMIT_AS, RLIMIT_STACK, cgroups) que impeçam a construção do argv/envp de tamanho necessário para acionar o overflow. Isso não elimina a falha no kernel, apenas eleva o custo de exploração.

O que não funciona como mitigação: WAF ou controles de borda de rede são irrelevantes, pois a falha é estritamente local e não trafega em rede; políticas de senha ou MFA também não mitigam, dado que o requisito é apenas uma sessão local já autenticada (mesmo de baixo privilégio), não uma etapa de autenticação adicional.

Cómo detectar

Não há assinatura de rede, já que o vetor é puramente local. Em nível de host, o sinal mais plausível é um evento de execve() (via auditd, regra type=EXECVE ou syscall execve) contra um binário SUID/SGID/com capabilities, associado a um processo com argumentos ou variáveis de ambiente de tamanho anormalmente grande (ordem de gigabytes), o que também tende a aparecer como pico de uso de memória do processo antes de um crash ou comportamento inesperado do binário. Logs do kernel (dmesg/journal) podem registrar oops, segfault ou comportamento anômalo do processo alvo no momento da tentativa. Como ambientes legítimos raramente constroem argv/envp desse tamanho, esse padrão é um indicador razoável, mas não há uma assinatura determinística publicada pelo fornecedor para diferenciar tentativa de exploração de uso legítimo incomum.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
An integer overflow flaw was found in the Linux kernel's create_elf_tables() function. An unprivileged local user with access to SUID (or otherwise privileged) binary could use this flaw to escalate their privileges on the system. Kernel versions 2.6.x, 3.10.x and 4.14.x are believed to be vulnerable.
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.