Use of Out-of-range Pointer Offset in Graphics
Priorize a correção. Ela está sob exploração confirmada pelo CISA.
Apply remediations or mitigations per vendor instructions or discontinue use of the product if remediation or mitigations are unavailable.
Resumo
Falha de corrupção de memória no driver KGSL (Kernel Graphics Support Layer) da GPU Adreno da Qualcomm, explorável por um processo local sem privilégios que envia uma lista grande de sync points em um comando AUX pelo ioctl IOCTL_KGSL_GPU_AUX_COMMAND. Está no catálogo KEV da CISA com exploração confirmada — o que eleva a prioridade mesmo com EPSS baixo, típico de falhas locais em kernel de driver de dispositivo Android.
Detalhamento técnico
A vulnerabilidade é classificada como CWE-823 (Use of Out-of-range Pointer Offset). O driver KGSL, que expõe a interface do kernel Linux para a GPU Adreno em SoCs Qualcomm, processa comandos AUX enviados via ioctl IOCTL_KGSL_GPU_AUX_COMMAND. Um desses subtipos de comando permite ao userspace submeter uma lista de 'sync points' — estruturas que sincronizam operações de GPU com eventos de kernel. O código de processamento dessa lista não valida corretamente o tamanho informado pelo chamador antes de indexar ou copiar dados, permitindo que um atacante controle um offset que sai da faixa de memória alocada para o buffer.
O resultado é corrupção de memória dentro do espaço de kernel: escrita ou leitura fora dos limites de uma estrutura interna do driver gráfico. Como o driver roda em contexto de kernel e o ioctl é acionado por processos userspace comuns (qualquer app com acesso ao device node da GPU, tipicamente algo como /dev/kgsl-3d0), a falha rompe a fronteira de isolamento entre processo e kernel — daí o vetor AV:L com PR:N e UI:N: acesso local, sem privilégio elevado, sem interação de usuário além de executar código.
O campo controlado pelo atacante é o tamanho/conteúdo da lista de sync points passada no comando AUX; a falta de bound-check nesse campo é a raiz do problema. A correção publicada pela Qualcomm/CodeLinaro (commit 1e46e81dbeb69aafd5842ce779f07e617680fd58 no repositório msm-4.19) ajusta a validação desse tamanho antes do acesso à estrutura.
Como é explorada
O vetor é local: o atacante precisa de capacidade de executar código no dispositivo (por exemplo, um app instalado, mesmo sandboxed) e de acesso ao nó de dispositivo do driver KGSL — algo normalmente disponível a apps com permissões gráficas padrão em Android, já que o driver de GPU é usado por qualquer aplicação que renderize gráficos. Não há necessidade de rede, de privilégios de root ou de interação adicional do usuário depois que o código malicioso já está rodando.
A exploração consiste em montar uma chamada ao IOCTL_KGSL_GPU_AUX_COMMAND com uma lista de sync points construída para forçar o driver a acessar memória fora dos limites esperados. Corrupção de memória em kernel desse tipo é o material clássico para escalonamento de privilégios local (de app sandboxed para kernel/root) — o CVSS reflete isso com C:H/I:H/A:H (impacto total em confidencialidade, integridade e disponibilidade).
A CISA confirma exploração ativa (entrada no catálogo KEV, adicionada em 2023-12-05, com prazo de mitigação até 2023-12-26), mas não há detalhamento público de quem explorou, em que campanha, nem write-up técnico de pesquisador com PoC completo nas fontes disponíveis. O padrão histórico de CVEs de KGSL da Qualcomm é uso por cadeias de escalonamento de privilégios em spyware móvel, mas essa atribuição específica não está confirmada aqui — trate como inferência de contexto, não fato apurado.
Versões
Como se proteger
A correção está no boletim de segurança da Qualcomm de dezembro de 2023 e no patch de kernel referenciado no repositório CodeLinaro (commit 1e46e81dbeb69aafd5842ce779f07e617680fd58, branch msm-4.19). A aplicação prática depende do fabricante do dispositivo (OEM) distribuir essa correção via atualização de firmware/kernel — usuários finais de Android não corrigem isso diretamente, dependem do patch de segurança mensal do fabricante incorporar o fix da Qualcomm.
Não há lista de versões de chipset ou de kernel afetadas detalhada nas fontes consultadas aqui; o boletim da Qualcomm (dezembro 2023) é a fonte primária para essa lista e deve ser consultado para confirmar se um SoC/modelo específico está na relação de produtos afetados antes de decidir sobre urgência.
Como paliativo real não há flag de configuração ou WAF aplicável — é falha de kernel/driver de hardware. A única mitigação compensatória é reduzir a superfície de exposição: em ambientes gerenciados (MDM), restringir instalação de apps não confiáveis reduz a chance de código malicioso local acionar o ioctl, mas isso não elimina o risco, apenas o vetor de entrega inicial. Discontinuar o uso do produto é a alternativa formal da CISA quando patch não está disponível.
Como detectar
Não há assinatura de rede aplicável — a exploração ocorre inteiramente em espaço local via chamada de ioctl ao driver de GPU, sem tráfego de rede associado. Em nível de sistema, monitoramento de chamadas ioctl anômalas para IOCTL_KGSL_GPU_AUX_COMMAND com listas de sync points de tamanho incomum, ou crashes/kernel panics recorrentes no driver KGSL (mensagens de log relacionadas a kgsl ou adreno no dmesg/kernel log), podem indicar tentativas de exploração ou instabilidade associada. Não há indicador público confiável e específico de exploração dessa CVE nas fontes consultadas — a CISA confirma exploração no mundo real sem detalhar IOCs.