CVE-2022-22706
Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.
Apply updates per vendor instructions.
Resumo
Falha no driver de kernel do Arm Mali GPU que permite a um usuário sem privilégios obter acesso de escrita em páginas de memória marcadas como somente leitura. Está no catálogo KEV da CISA com exploração confirmada, mas o CVSS 7.8 exige acesso local prévio (PR:L) — não é uma falha explorável remotamente por si só, e sim uma peça de escalonamento de privilégios/corrupção de memória usada dentro de uma cadeia maior de exploração, típica em comprometimento de dispositivos Android e outros SoCs que usam GPU Mali.
Detalhamento técnico
A Arm classifica a falha apenas como 'unspecified vulnerability' em seu advisory de segurança, sem detalhar o componente exato do driver ou o fluxo de código afetado. O CISA KEV mapeia a falha para CWE-119 (Improper Restriction of Operations within the Bounds of a Memory Buffer), indicando um problema de gerenciamento de memória no driver de kernel — não no firmware da GPU nem no userspace.
O efeito prático é a quebra da separação de permissões de página: uma página mapeada como read-only para o processo (por exemplo, memória compartilhada entre CPU e GPU alocada pelo driver Mali) passa a aceitar escrita a partir de um contexto sem privilégio elevado. Isso é consistente com classes de bugs recorrentes em drivers Mali — manipulação incorreta de mapeamentos de memória (mmap/GPU MMU), contagem de referência de buffers, ou validação insuficiente de flags de proteção ao criar/reutilizar alocações.
O fornecedor não publicou write-up técnico detalhado nem prova de conceito pública nas fontes catalogadas; a Arm historicamente divulga essas falhas em lote (múltiplos CVEs por boletim) sem análise root-cause aberta ao público, o que limita a profundidade de qualquer descrição técnica além da fornecida oficialmente.
Como é explorada
Para explorar a falha, o atacante precisa de execução de código local no dispositivo — ou seja, já ter conseguido rodar algo como aplicativo ou processo sem privilégio no sistema (PR:L no vetor CVSS). A partir daí, interage com o driver Mali (via ioctl ou chamadas de mapeamento de memória expostas pelo device node do GPU) para obter escrita em páginas que deveriam ser somente leitura, o que normalmente é usado para corromper estruturas de kernel ou tabelas de página e escalar para execução com privilégios de kernel ou de sistema.
Essa característica — não ser uma falha de entrada remota, mas um primitivo de escalonamento local — é o motivo de estar no KEV: vulnerabilidades de GPU Mali com esse padrão têm sido historicamente encadeadas em campanhas de spyware comercial contra dispositivos móveis, onde o vetor inicial (navegador, app malicioso, mensagem) entrega o código que dispara essa etapa de escalonamento de privilégio. A CISA não detalha o ator ou a campanha associada no registro do KEV, apenas confirma exploração ativa.
Não há PoC pública documentada nas fontes catalogadas nem detalhamento de payload; a ação recomendada pela CISA é genérica ('apply updates per vendor instructions'), o que reforça que o conhecimento técnico completo do exploit não está disponível publicamente — apenas o fornecedor e possivelmente os operadores da campanha detectada o possuem.
Versões
Como se proteger
A correção definitiva é atualizar o driver de kernel Mali para uma versão acima da faixa vulnerável indicada pela Arm (posterior a r31p0 na linha Midgard, r35p0 na linha Bifrost e r35p0 na linha Valhall — a versão exata de correção por branch deve ser confirmada no advisory oficial da Arm, pois seu conteúdo detalhado não foi possível verificar diretamente a partir das fontes disponíveis). Em dispositivos Android, essa atualização normalmente chega via boletim de segurança do fabricante do SoC/OEM, não via Arm diretamente — o usuário final depende do vendor patch level do dispositivo.
Não há paliativo de configuração conhecido: como o bug está no driver de kernel que faz a ponte entre CPU e GPU, não existe flag de userspace ou mitigação de WAF/rede aplicável — a superfície é local e de kernel. A única redução de risco real sem atualizar é limitar a superfície de execução de código não confiável no dispositivo (controle de instalação de apps, isolamento de processos, atualização do SO), o que reduz a chance de o atacante chegar ao ponto de ter execução local necessária para acionar a falha.
Não funciona como mitigação: reiniciar o dispositivo, remover apps específicos após infecção (não corrige a vulnerabilidade em si, só remove artefatos), ou confiar em antivírus/EDR de userspace para bloquear a interação com o driver — a exploração ocorre em nível de kernel e pode ocorrer antes que ferramentas de detecção em userspace tenham visibilidade.
Como detectar
Não há assinatura de rede aplicável — a exploração ocorre localmente via chamadas ao driver de kernel (device node da GPU), sem tráfego de rede associado à etapa de escalonamento em si. Em nível de host, sinais possíveis incluem crashes ou comportamento anômalo do processo do driver Mali (kernel panics, entradas de log relacionadas a mapeamento de memória do GPU) e, em análise forense de dispositivos móveis comprometidos, presença de processos ou binários que interagem diretamente com o device node do Mali fora do padrão esperado de apps legítimos. Não existe indicador de comprometimento público e confiável documentado nas fontes catalogadas; a confirmação de exploração geralmente vem de análise forense pós-incidente, não de detecção em tempo real.