← voltar
CVE-2021-3493highsob ataqueCWE-270

CVE-2021-3493

100Vexday Risk Score

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

ssvc Actcvss 8.8epss 49%
da publicação à arma0 dias
Publicada no NVD17 de abr.
1ª PoC30 de mar.
metasploit12 de abr.
CISA KEV+551d
probabilidade de exploração
49%top 1% das CVEs
exploração observada
simCISA + VulnCheck
45 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-11-10

Apply updates per vendor instructions.

Resumo

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.

Detalhamento 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.

Como é explorada

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.

Versões

Afetadas
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().
Corrigidas em
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.

Como se proteger

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.

Como 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.

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.
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
Produtos afetados
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/b1b3a8751d53não verificadovulncheckvulncheck.com/xdb/ed42677360banão verificadovulncheckvulncheck.com/xdb/bf6732e3dacanão verificadovulncheckvulncheck.com/xdb/df20ad5b82e3não verificadovulncheckvulncheck.com/xdb/f8390219793fnão verificadovulncheckvulncheck.com/xdb/93af15d63cbbnão verificadovulncheckvulncheck.com/xdb/9f1aa472b331não verificadovulncheckvulncheck.com/xdb/cb542684d6e8não verificadovulncheckvulncheck.com/xdb/c7b918e28754não verificadovulncheckvulncheck.com/xdb/e11475eed700não verificadovulncheckvulncheck.com/xdb/cdab85ebdf2enão verificadovulncheckvulncheck.com/xdb/2741081d8c00não verificadocve_referencepacketstormsecurity.com/files/162434/Kernel-Live-Patch-Security-Notice-LSN-0076-1.htmlnão verificadovulncheckvulncheck.com/xdb/f87c55028b1enão verificadocve_referencepacketstormsecurity.com/files/162866/Ubuntu-OverlayFS-Local-Privilege-Escalation.htmlnão verificadocve_referencepacketstormsecurity.com/files/165151/Ubuntu-Overlayfs-Local-Privilege-Escalation.htmlnão verificadovulncheckvulncheck.com/xdb/80b50ee28342não verificadovulncheckvulncheck.com/xdb/260ad0a548b5não verificadovulncheckvulncheck.com/xdb/8bc3c24df427não verificadovulncheckvulncheck.com/xdb/c90d13040f2anão verificadovulncheckvulncheck.com/xdb/76f421f52f8fnão verificadovulncheckvulncheck.com/xdb/44567c4bebd7não verificadovulncheckvulncheck.com/xdb/f90698fb4173não verificadovulncheckvulncheck.com/xdb/53855273d7f8não verificadovulncheckvulncheck.com/xdb/39754c7f28a6não verificadovulncheckvulncheck.com/xdb/165ca931536bnão verificadovulncheckvulncheck.com/xdb/2ab470a88220não verificadovulncheckvulncheck.com/xdb/f3abef618150não verificadovulncheckvulncheck.com/xdb/586ebe33df5fnão verificado
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.