CVE-2020-3837
Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.
Apply updates per vendor instructions.
Summary
Falha de corrupção de memória no driver de kernel IOAcceleratorFamily do XNU (kernel usado por iOS, iPadOS, macOS, tvOS e watchOS), que permite a uma aplicação local escalar de execução em espaço de usuário para execução de código arbitrário com privilégios de kernel. É explorada apenas localmente — exige que a vítima instale e execute uma aplicação maliciosa — mas está confirmada como explorada em ataques reais e consta no catálogo KEV da CISA, o que a torna prioridade mesmo com CVSS moderado (7.8).
Technical detail
IOAcceleratorFamily é a família de drivers IOKit responsável pela aceleração gráfica (GPU) no XNU. Como boa parte da superfície IOKit, ele expõe user clients acessíveis por aplicações em espaço de usuário via chamadas do tipo IOConnectCallMethod, que passam buffers e escalares controlados pelo chamador para métodos externos do driver. A Apple descreve a falha apenas como 'memory corruption issue addressed with improved memory handling', sem detalhar se é um out-of-bounds write, use-after-free ou type confusion (CWE genérico de corrupção de memória, provavelmente CWE-787 ou CWE-416, mas o fornecedor não confirma o primitivo exato).
How it’s exploited
O vetor é local: a aplicação maliciosa roda em espaço de usuário — dentro do sandbox padrão de app do iOS/macOS — e usa o bug no IOAcceleratorFamily para corromper memória do kernel, obtendo execução de código com privilégios de kernel e, na prática, saída do sandbox. Não há componente de rede; não é explorável remotamente. O vetor CVSS (AV:L/PR:N/UI:R) reflete isso: acesso local, sem privilégio prévio, mas com interação do usuário (instalar/executar o app malicioso).
Versions
How to protect
A correção definitiva é atualizar para as versões que a Apple lista como corrigidas: iOS 13.3.1, iPadOS 13.3.1, macOS Catalina 10.15.3, tvOS 13.3.1 e watchOS 6.1.2, todas lançadas em 28 de janeiro de 2020. Não há paliativo de configuração real para dispositivos que não podem atualizar — o bug é em um driver de kernel sempre carregado, então restringir a instalação de apps não confiáveis (política de MDM bloqueando sideload, evitar perfis de configuração de terceiros, não fazer jailbreak) reduz a superfície mas não elimina o risco, já que qualquer app com esse código pode acionar o driver. Restringir permissões de app não é mitigação eficaz: o bug ocorre dentro do próprio kernel, então nenhuma política de sandbox de app impede a chamada inicial ao driver IOKit — a única barreira real é a versão corrigida do sistema.
How to detect
Não há assinatura de rede a procurar, pois a exploração é inteiramente local ao dispositivo. O único sinal indireto plausível é a análise de logs de pane (panic logs) do kernel mencionando o driver IOAcceleratorFamily ou frames de IOKit associados a ele, e telemetria de MDM/EMM sobre instalação de apps fora de canais oficiais antes de uma pane inesperada. Isso não constitui detecção confiável — ambientes sem telemetria de crash reporting a nível de kernel praticamente não têm como identificar tentativas passadas.