← volver
CVE-2021-3493highbajo ataqueCWE-270

CVE-2021-3493

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 8.8epss 49%
de la publicación al arma0 días
Publicada en NVD17 abr
1ª PoC30 mar
metasploit12 abr
CISA KEV+551d
probabilidad de explotación
49%top 1% de las CVE
explotación observada
CISA + VulnCheck
45 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-11-10

Apply updates per vendor instructions.

Resumen

Falha de escalonamento de privilégios local no subsistema overlayfs de kernels Ubuntu, causada pela combinação de dois fatores: um patch que a Ubuntu carrega para permitir montagens overlayfs por usuários sem privilégios, e uma lacuna na validação de capabilities de arquivo (file capabilities) frente a user namespaces. Um usuário local sem privilégios pode explorar isso para obter privilégios de root. Não afeta o kernel Linux upstream — é uma vulnerabilidade específica de como a Ubuntu combinou esses dois recursos antes de portar a correção correta.

Detalle técnico

O kernel Linux valida e converte capabilities de arquivo (xattr security.capability) em relação ao user namespace através da função cap_convert_nscap(). Até a correção upstream, essa validação só era chamada no caminho da syscall setxattr() (em fs/xattr.c), e não dentro de vfs_setxattr(), que é a função genérica usada por sistemas de arquivos em camadas como overlayfs durante operações de copy-up. Isso significa que quando o overlayfs copiava um arquivo com capabilities do layer inferior para o layer superior via vfs_setxattr(), a checagem de user namespace era pulada.

A correção upstream (commit 7c03e2cda4a5, 'vfs: move cap_convert_nscap() call into vfs_setxattr()') moveu a chamada para dentro de vfs_setxattr(), cobrindo todos os caminhos, incluindo overlayfs. Essa correção entrou no kernel 5.10, antes do commit que liberou montagens overlayfs não privilegiadas no upstream (459c7c565ac3, kernel 5.11) — por isso o Linux upstream nunca ficou exposto: quando overlayfs sem privilégios chegou oficialmente, a validação já estava corrigida.

A Ubuntu, porém, carregava seu próprio patch permitindo montagens overlayfs não privilegiadas em kernels anteriores ao 5.11, sem ter portado a correção de cap_convert_nscap() para vfs_setxattr(). Combinado com user namespaces não privilegiados habilitados por padrão, isso deixou uma janela onde um processo dentro de um user namespace podia definir capabilities de arquivo (como cap_setuid) em um arquivo, montar via overlayfs, e o copy-up aplicava a capability sem revalidar contra o namespace real, tornando-a efetiva fora do namespace.

CWE associado pela CISA é CWE-862 (Missing Authorization) — a checagem de autorização que deveria vincular a capability ao user namespace de origem simplesmente não era executada nesse caminho de código.

Cómo se explota

Pré-requisito central: acesso local autenticado (mesmo sem privilégios) e dois recursos habilitados no kernel Ubuntu afetado — user namespaces não privilegiados (padrão na maioria das instalações Ubuntu) e o patch de montagem overlayfs não privilegiada que a Ubuntu carregava. Sem acesso local, a falha não é explorável; é estritamente escalonamento de privilégios, não execução remota.

Na prática, o atacante cria um user namespace não privilegiado, monta um overlayfs sem privilégios elevados, e manipula a xattr security.capability de um arquivo dentro desse contexto para atribuir uma capability sensível (por exemplo, a que permite trocar UID/GID ou manipular capabilities de processo). Como a conversão/validação relativa ao namespace não ocorre no caminho do copy-up do overlayfs, a capability definida dentro do namespace isolado acaba valendo fora dele, permitindo que o processo do atacante, ao executar o arquivo resultante, adquira privilégios de root no host.

A vulnerabilidade está no catálogo KEV da CISA (adicionada em 2022-10-20, prazo de correção 2022-11-10), confirmando exploração ativa. Existem módulo Metasploit e PoCs públicos, o que reduz bastante a barreira técnica — a exploração é considerada de baixa complexidade para quem já tem uma conta local, típica de cenários de pós-exploração (elevar de usuário shell/serviço comprometido para root) em servidores multiusuário, containers mal configurados ou ambientes compartilhados.

Versiones

Afectadas
Kernels Linux distribuídos pela Ubuntu (não o kernel upstream) nas séries 18.04 LTS, 20.04 LTS e 20.10, em todas as variantes de pacote (linux, linux-aws, linux-azure, linux-gcp, linux-gke, linux-gkeop, linux-hwe, linux-kvm, linux-oem, linux-oracle, linux-raspi, entre outras) anteriores às versões corrigidas publicadas na USN-4917-1. A condição exige que o kernel Ubuntu carregue o patch de montagem overlayfs não privilegiada sem a correção de cap_convert_nscap() em vfs_setxattr().
Corregidas en
Conforme USN-4917-1: para 20.10 (groovy), kernel 5.8.0-50.56 e equivalentes por variante (ex.: 5.8.0-1021.24 raspi, 5.8.0-1024.26 kvm, 5.8.0-1026.27 oracle, 5.8.0-1028.29 gcp, 5.8.0-1029.31 azure, 5.8.0-1030.32 aws). Para 20.04 LTS (focal), versões incluindo 5.4.0-72.80 (generic), 5.8.0-50.56~20.04.1 (hwe), 5.10.0-1022.23 (oem), 5.4.0-1034.37 (raspi), 5.4.0-1038.39 (kvm), 5.4.0-1042.45 (gcp), 5.4.0-1043.46 (oracle), 5.4.0-1045.47 (aws), 5.4.0-1046.48 (azure), 5.4.0-1014.15 (gkeop). O upstream Linux kernel corrigiu o problema subjacente (cap_convert_nscap em vfs_setxattr) no commit 7c03e2cda4a5, incorporado no kernel 5.10 — antes de overlayfs não privilegiado existir oficialmente no upstream (5.11), por isso o upstream nunca esteve na condição vulnerável.

Cómo protegerse

A correção definitiva é atualizar o kernel Ubuntu para as versões corrigidas listadas na USN-4917-1 (por release: 18.04 LTS, 20.04 LTS, 20.10, incluindo variantes aws, azure, gcp, oracle, raspi, kvm, gkeop, oem, hwe). Após a atualização é necessário reiniciar o sistema, e como houve mudança de ABI, módulos de kernel de terceiros precisam ser recompilados e reinstalados — isso normalmente é feito automaticamente ao atualizar os metapacotes padrão (linux-generic, linux-virtual etc.), mas ambientes com módulos customizados fora do gerenciador de pacotes exigem atenção manual.

Se a atualização não for possível de imediato, o controle compensatório real é desabilitar user namespaces não privilegiados (via sysctl, algo como kernel.unprivileged_userns_clone=0 em kernels Ubuntu que expõem esse parâmetro). O custo é relevante: isso quebra funcionalidades que dependem de user namespaces sem privilégios, incluindo sandboxes de navegador, containers rootless e algumas ferramentas de isolamento de aplicação — não é um paliativo gratuito, é uma troca de superfície de ataque por funcionalidade.

Não existe mitigação via WAF ou controle de rede, porque a falha é puramente local, no kernel. Restringir acesso de shell/login a usuários não confiáveis reduz a exposição, mas não elimina o risco em ambientes multiusuário ou onde processos de baixo privilégio podem ser comprometidos remotamente e usados como trampolim.

Cómo detectar

Exploração é local e não deixa assinatura de rede. Sinais a procurar em auditoria de host: chamadas de syscall mount com sistema de arquivo overlay originadas por UIDs não privilegiados fora de containers esperados; criação de user namespaces por processos não administrativos (via unshare/clone com CLONE_NEWUSER) seguida de operações setxattr envolvendo o atributo security.capability; e escalonamento anômalo de capabilities em processos filhos de sessões de usuário comum. Regras de auditd voltadas a mount(), unshare() e setxattr() com o nome de atributo security.capability, correlacionadas com UID de origem não privilegiado, são o caminho mais viável — mas não há um indicador de rede ou log padrão do fornecedor específico para essa CVE, então a ausência de alerta não implica ausência de tentativa.

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.
The overlayfs implementation in the linux kernel did not properly validate with respect to user namespaces the setting of file capabilities on files in an underlying file system. Due to the combination of unprivileged user namespaces along with a patch carried in the Ubuntu kernel to allow unprivileged overlay mounts, an attacker could use this to gain elevated privileges.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Productos afectados
Ubuntu · linux kernel
PoCs públicas encontradas45
githubgithub.com/briskets/CVE-2021-3493442githubgithub.com/inspiringz/CVE-2021-349342githubgithub.com/oneoy/CVE-2021-34933githubgithub.com/cerodah/overlayFS-CVE-2021-34931githubgithub.com/puckiestyle/CVE-2021-34931githubgithub.com/fei9747/CVE-2021-34931githubgithub.com/Abdennour-py/CVE-2021-34930githubgithub.com/derek-turing/CVE-2021-34930githubgithub.com/pmihsan/OverlayFS-CVE-2021-34930githubgithub.com/iamz24/CVE-2021-3493_CVE-2022-33570githubgithub.com/ptkhai15/OverlayFS---CVE-2021-34930githubgithub.com/George-Yanni/DeepRoot0githubgithub.com/iqbalhussainas/OverlayFS-LPE-Exploit0githubgithub.com/fathallah17/OverlayFS-CVE-2021-34930githubgithub.com/Sornphut/OverlayFS---CVE-2021-34930githubgithub.com/cyberx-1/OverlayFS-CVE-2021-34930vulncheckvulncheck.com/xdb/b1b3a8751d53no verificadovulncheckvulncheck.com/xdb/ed42677360bano verificadovulncheckvulncheck.com/xdb/bf6732e3dacano verificadovulncheckvulncheck.com/xdb/df20ad5b82e3no verificadovulncheckvulncheck.com/xdb/f8390219793fno verificadovulncheckvulncheck.com/xdb/93af15d63cbbno verificadovulncheckvulncheck.com/xdb/9f1aa472b331no verificadovulncheckvulncheck.com/xdb/cb542684d6e8no verificadovulncheckvulncheck.com/xdb/c7b918e28754no verificadovulncheckvulncheck.com/xdb/e11475eed700no verificadovulncheckvulncheck.com/xdb/cdab85ebdf2eno verificadovulncheckvulncheck.com/xdb/2741081d8c00no verificadocve_referencepacketstormsecurity.com/files/162434/Kernel-Live-Patch-Security-Notice-LSN-0076-1.htmlno verificadovulncheckvulncheck.com/xdb/f87c55028b1eno verificadocve_referencepacketstormsecurity.com/files/162866/Ubuntu-OverlayFS-Local-Privilege-Escalation.htmlno verificadocve_referencepacketstormsecurity.com/files/165151/Ubuntu-Overlayfs-Local-Privilege-Escalation.htmlno verificadovulncheckvulncheck.com/xdb/80b50ee28342no verificadovulncheckvulncheck.com/xdb/260ad0a548b5no verificadovulncheckvulncheck.com/xdb/8bc3c24df427no verificadovulncheckvulncheck.com/xdb/c90d13040f2ano verificadovulncheckvulncheck.com/xdb/76f421f52f8fno verificadovulncheckvulncheck.com/xdb/44567c4bebd7no verificadovulncheckvulncheck.com/xdb/f90698fb4173no verificadovulncheckvulncheck.com/xdb/53855273d7f8no verificadovulncheckvulncheck.com/xdb/39754c7f28a6no verificadovulncheckvulncheck.com/xdb/165ca931536bno verificadovulncheckvulncheck.com/xdb/2ab470a88220no verificadovulncheckvulncheck.com/xdb/f3abef618150no verificadovulncheckvulncheck.com/xdb/586ebe33df5fno verificado
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.