← back
CVE-2021-0920mediumunder attackCWE-416

CVE-2021-0920

43Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA.

ssvc Attendcvss 6.4epss 0.9%
from disclosure to weapon
Published on NVDDec 15
CISA KEV+159d
exploitation probability
0.9%top 44% of all CVEs
observed exploitation
yesCISA + VulnCheck
What the vendors declare (VEX)

Official vendor statements in CSAF/VEX format: whether their product is affected, already fixed, or ruled out — and why. These are the vendor's assertions, not Vexday's judgment.

Fixed
43 products (1,364 components)
Red Hat Enterprise Linux BaseOS EUS (v.8.4) · Red Hat Enterprise Linux BaseOS EUS (v. 8.2) · Red Hat Enterprise Linux BaseOS (v. 8) · Red Hat Enterprise Linux Server (v. 7) · Red Hat Enterprise Linux BaseOS E4S (v. 8.1) · and others 38
Not affected
3 products (115 components)because the vulnerable code is not present in the product
Red Hat Enterprise Linux 9 · RHEL 7-based RHEV-H for RHEV 4 (build requirements) · RHEL 8-based RHEV-H for RHEV 4 (build requirements)
Action required by CISAfederal deadline: 2022-06-13

Apply updates per vendor instructions.

Summary

Use-after-free por condição de corrida na função unix_scm_to_skb() do subsistema AF_UNIX do kernel Linux, explorável em dispositivos Android para escalada de privilégio local. O boletim de segurança do Android de novembro de 2021 indica exploração limitada e direcionada antes da divulgação pública, e a CISA confirmou exploração ativa ao incluir a falha no catálogo KEV.

Technical detail

A falha está em unix_scm_to_skb(), função que copia dados de controle SCM (Socket Control Message) — usados para passar credenciais e file descriptors via SCM_RIGHTS em sockets AF_UNIX — para o buffer skb associado à mensagem. O problema é classificado como race condition (CWE-362) que degenera em use-after-free (CWE-416): sob concorrência específica de threads manipulando o mesmo socket ou estrutura de controle, uma referência pode ser liberada enquanto outra parte do kernel ainda a acessa, corrompendo memória do kernel.

O fornecedor (Google/AOSP) não detalhou a sequência exata de código nem publicou análise técnica aprofundada além da descrição padrão de bulletin; o report interno é rastreado como Android ID A-196926917, com referência apenas a 'Upstream kernel', ou seja, a correção seguiu um fix do kernel Linux mainline, não um patch exclusivo Android.

O vetor CVSS (AV:L/AC:H/PR:H/UI:N) resume as pré-condições: acesso local, privilégios altos já concedidos, e alta complexidade de ataque — típico de bugs de corrida onde o atacante precisa ganhar uma janela de tempo estreita, geralmente disparando múltiplas syscalls concorrentes sobre sockets AF_UNIX até acertar o timing.

How it’s exploited

Explorar essa falha exige execução de código local no dispositivo Android com privilégios já elevados (PR:H) — não é uma vulnerabilidade explorável remotamente nem por um app comum sem contexto privilegiado prévio. Isso normalmente aparece como um elo intermediário em cadeias de exploração: um atacante que já obteve execução em um processo com certo nível de acesso usa esta falha para pular para privilégios de sistema (kernel), tipicamente após já ter conseguido rodar código nativo via outra vulnerabilidade de entrada (app maliciosa, exploit de renderer de browser, etc.).

A complexidade alta (AC:H) reflete a natureza de race condition: o atacante precisa disparar operações concorrentes sobre o mesmo socket AF_UNIX/mensagens SCM em threads paralelas para vencer a corrida e acionar o use-after-free de forma confiável, o que normalmente demanda múltiplas tentativas ou técnicas de heap grooming para tornar a exploração determinística.

O boletim da Android Security de novembro de 2021 registra 'indications that CVE-2021-1048 and CVE-2021-0920 may be under limited, targeted exploitation' — ou seja, o próprio fornecedor sinaliza suspeita de uso em campanhas direcionadas antes da correção pública, o que motivou a inclusão no catálogo KEV da CISA em maio de 2022. Não há detalhes públicos sobre quem exploindo, o alvo ou a cadeia completa de exploit usada.

Versions

Affected
Kernel Android anterior ao nível de patch de segurança 2021-11-05 (componentes de kernel afetados por CVE-2021-0920 conforme Android Security Bulletin de novembro de 2021). No ramo Linux LTS genérico, versões do pacote linux anteriores à correção aplicada no Debian (pré 4.9.290-1 no branch stretch/LTS).
Fixed in
Dispositivos Android com nível de patch de segurança 2021-11-05 ou posterior. No Debian LTS, pacote linux 4.9.290-1 (branch stretch, DLA-2843-1). Não há confirmação nas fontes de um número de versão específico do kernel Linux mainline upstream que introduziu o fix.

How to protect

A correção oficial está nos patches de kernel referenciados como 'Upstream kernel' e distribuída via nível de patch de segurança Android 2021-11-05 ou posterior (bulletin de novembro de 2021). Dispositivos Android devem ser atualizados para esse nível de patch ou posterior — a versão exata do commit upstream do kernel Linux que corrige o AF_UNIX não foi detalhada nas fontes consultadas, então não há número de versão de kernel Linux mainline específico para citar com segurança.

Distribuições Linux fora do contexto Android também trataram a mesma CVE em seus branches de kernel — por exemplo, o Debian LTS corrigiu a falha no pacote linux versão 4.9.290-1 (branch stretch/LTS), o que indica que o bug afeta o kernel Linux genérico, não apenas builds Android, e cada distribuição/vendor tem seu próprio calendário de backport.

Se a atualização de patch level não for possível imediatamente, não há mitigação de configuração conhecida e documentada para este bug específico (diferente de outras CVEs do mesmo boletim, como CVE-2021-41864, que tem sysctl de contenção). O controle compensatório real é a atualização do patch de segurança do dispositivo; soluções de MDM/EMM que restringem instalação de apps de fontes não confiáveis reduzem a chance de um atacante conseguir a execução de código local necessária como pré-requisito, mas não eliminam a vulnerabilidade em si.

How to detect

Não há assinatura de rede a procurar, pois a exploração é inteiramente local (acesso a sockets AF_UNIX dentro do próprio dispositivo). Sinais possíveis incluem crashes ou panics de kernel relacionados a corrupção de memória em af_unix.c em logs dmesg/kernel log, ou comportamento anômalo de processos que deveriam operar em sandbox mas obtêm privilégios de sistema. Ferramentas de EDR móvel com telemetria de kernel e ferramentas de análise de crash (KASAN, syzkaller-style fuzzing logs em builds de debug) são os únicos meios realistas de detectar tentativas; em produção, sem instrumentação de kernel dedicada, não há sinal confiável de exploração retroativa.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
In unix_scm_to_skb of af_unix.c, there is a possible use after free bug due to a race condition. This could lead to local escalation of privilege with System execution privileges needed. User interaction is not needed for exploitation.Product: AndroidVersions: Android kernelAndroid ID: A-196926917References: Upstream kernel
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
Affected products
n/a · Android