CVE-2019-7286
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 framework Foundation do iOS, macOS, tvOS e watchOS que permite a um app malicioso local elevar privilégios no dispositivo. A CVE ganhou relevância não pelo CVSS (7.8, moderado para um catálogo cheio de RCEs remotos) mas por ter sido usada em ataques reais documentados — está no catálogo KEV da CISA como exploração confirmada e circula PoC pública.
Technical detail
O bug está no framework Foundation, componente base do runtime Objective-C/Swift usado por praticamente todo app e serviço do sistema nas plataformas Apple. A Apple descreve como 'memory corruption issue', corrigido com 'improved input validation' — categoria compatível com CWE-787 (out-of-bounds write) ou CWE-843 (type confusion), comuns em classes serializadas/objetos do Foundation (ex: NSKeyedUnarchiver e afins), mas a Apple não detalha a classe ou API exata afetada.
O vetor CVSS (AV:L/AC:L/PR:N/UI:R) indica que a exploração é local — o atacante precisa de código já em execução no dispositivo, não é algo disparável pela rede sozinho — e exige interação do usuário, mas não exige privilégio nem autenticação prévios. O impacto declarado é 'aplicação pode obter privilégios elevados', ou seja, escalonamento de privilégio local a partir de um processo com menos privilégio (tipicamente um app sandboxed) para um contexto mais privilegiado do sistema.
A descoberta é atribuída a um pesquisador anônimo, Clement Lecigne (Google Threat Analysis Group) e Ian Beer e Samuel Groß (Google Project Zero) — a mesma dupla de créditos aparece em CVE-2019-7287 (falha correlata no IOKit, com impacto de execução de código com privilégios de kernel), sugerindo que as duas foram descobertas na mesma investigação, não isoladamente.
How it’s exploited
Por si só, esta CVE não dá execução de código a um atacante remoto: ela eleva privilégios de um processo que já roda no dispositivo. Na prática, isso a torna um elo de cadeia de exploração — o estágio que seria usado depois de um comprometimento inicial (por exemplo, via um bug de renderização web ou de outro componente exposto a conteúdo remoto) para escapar do sandbox do app e ganhar mais controle sobre o sistema.
Ataques com esse padrão em iOS 12.1.2 foram documentados publicamente pelo Google Project Zero em agosto de 2019 (relatório sobre cadeias de exploit encontradas 'in the wild', usadas em sites comprometidos que atingiam visitantes indiscriminadamente — watering hole attack). A janela de correção da Apple (fevereiro de 2019, antes da divulgação pública em agosto) é consistente com o cenário de dia zero corrigido silenciosamente após descoberta de exploração ativa, o que também explica a presença no catálogo KEV da CISA.
A complexidade de exploração isolada da CVE-2019-7286 é baixa a moderada (é um bug de corrupção de memória em input validation, não uma lógica trivial), mas montar a cadeia completa — do vetor inicial de entrada até o escalonamento de privilégio e persistência — exige conhecimento de exploração de memória em Objective-C/Foundation e, historicamente, foi feito por atores com recursos de pesquisa significativos, não por script kiddies.
Versions
How to protect
Atualizar para as versões corrigidas: iOS 12.1.4, macOS Mojave 10.14.3 Supplemental Update (build 18D109), tvOS 12.2 e watchOS 5.2. Note que os patches para tvOS e watchOS saíram mais de um mês depois dos de iOS/macOS (25 e 27 de março de 2019, contra 7 de fevereiro de 2019) — dispositivos Apple TV e Apple Watch ficaram expostos por mais tempo mesmo após a correção estar disponível para iPhone/iPad/Mac.
Não há paliativo de configuração conhecido: a falha está no framework Foundation, usado por praticamente todo o sistema, e não há flag, entitlement ou restrição de sandbox que neutralize a corrupção de memória sem o patch do fornecedor. Em ambientes gerenciados (MDM), a única mitigação real é forçar a atualização mínima de OS nas políticas de compliance e bloquear enrollment/acesso corporativo a dispositivos abaixo dessas versões.
O que não funciona: restringir instalação de apps de fontes não oficiais reduz superfície de exposição inicial mas não corrige o bug em si — como o defeito é local e pode ser acionado por qualquer processo com código já em execução, controles de App Store/sideloading mitigam o vetor de entrada, não a vulnerabilidade.
How to detect
Não há assinatura de rede confiável: a exploração é local, ocorre dentro do dispositivo após um vetor de entrada separado, e não gera tráfego característico atribuível a esta CVE isoladamente. Em nível de host, crash logs ou relatórios de diagnóstico referenciando falhas no framework Foundation, ou processos de apps sandboxed apresentando comportamento de privilégio inconsistente com seu entitlement, são indícios indiretos — mas inespecíficos, já que corrupção de memória em Foundation pode ter causas benignas de bug também. Para detecção real de exploração dessa cadeia, o sinal mais confiável documentado foi a identificação dos sites comprometidos usados como watering hole pelo Google TAG, não telemetria do dispositivo vítima.