← back
CVE-2014-4404highunder attackCWE-787

CVE-2014-4404

98Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 7.8epss 49%
from disclosure to weapon75 days
Published on NVDSep 18
1st PoC+75d
metasploit+6d
CISA KEV+2702d
exploitation probability
49%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
1 public exploit(s)
Action required by CISAfederal deadline: 2022-08-10

Apply updates per vendor instructions.

Summary

Falha de heap overflow no driver de kernel IOHIDFamily do iOS e do Apple TV, no código que processa propriedades de key-mapping (mapeamento de teclas de dispositivos HID). Permite que um aplicativo comum, sem privilégios especiais, escale para execução de código em contexto privilegiado (kernel/system) no dispositivo. Descoberta por Ian Beer, do Google Project Zero, e está no catálogo KEV da CISA — ou seja, há exploração confirmada, historicamente associada ao ecossistema de jailbreak do iOS 8.

Technical detail

IOHIDFamily é o framework de kernel (parte do IOKit, no XNU) responsável por dispositivos HID — teclados, gamepads, dispositivos de entrada virtuais. Ele expõe uma interface de user client que qualquer processo pode abrir e usar para configurar propriedades de mapeamento de tecla (key-mapping properties), estrutura de dados que traduz códigos de tecla física para funções lógicas.

O bug é um heap-based buffer overflow (CWE-122): ao processar propriedades de key-mapping fornecidas pelo chamador, o driver não valida corretamente o tamanho ou a estrutura dos dados antes de copiá-los para um buffer alocado no heap do kernel. Um app malicioso controla o conteúdo e, presumivelmente, o tamanho dessas propriedades ao configurá-las via a API pública do IOHIDFamily, e consegue escrever além dos limites do buffer alocado.

Como a corrupção ocorre em memória de kernel, o impacto não se limita a crash: com heap grooming adequado, o atacante pode sobrescrever estruturas adjacentes no heap do kernel e desviar fluxo de execução, obtendo code execution com privilégios de sistema — fora da sandbox do app. É a mesma classe de bug (validação insuficiente de key-mapping properties no IOHIDFamily) que gerou também a CVE-2014-4405 (null pointer dereference), corrigida no mesmo conjunto de patches, o que sugere uma revisão ampla de robustez feita pela Apple naquele componente após o relato de Beer.

O advisory da Apple para OS X Yosemite 10.10 lista a mesma CVE-2014-4404 como corrigida no lançamento do 10.10, com descrição idêntica ('heap buffer overflow existed in IOHIDFamily's handling of key-mapping properties'). Isso indica que o componente vulnerável também existia em versões anteriores do OS X, mesmo que a descrição oficial do NVD cite apenas iOS e Apple TV.

How it’s exploited

O vetor é local: um aplicativo instalado no dispositivo (não necessariamente via App Store — o CVSS aponta AV:L e UI:R, ou seja, requer que o usuário execute a app maliciosa) abre uma conexão com o user client do IOHIDFamily e envia propriedades de key-mapping malformadas para triggerar o overflow no heap do kernel. Não há componente de rede: não é explorável remotamente sem antes conseguir execução de código no dispositivo.

Não exige autenticação de sistema nem configuração não padrão — qualquer app capaz de rodar no aparelho, mesmo dentro da sandbox padrão de apps, pode acessar a interface do IOHIDFamily, que é exposta para todo processo por necessidade funcional (processar entrada de dispositivos HID). Isso é o que torna a falha crítica para escalonamento de privilégios: o atacante já tem execução em espaço de usuário e usa o bug para saltar para kernel/system, contornando a sandbox de apps do iOS.

Há PoC pública e módulo Metasploit documentados, e a presença no catálogo KEV da CISA confirma exploração real. O uso histórico mais conhecido dessa classe de falhas em IOHIDFamily do iOS 8 esteve ligado a ferramentas de jailbreak da época, que empilhavam múltiplas CVEs de escalonamento de privilégio de kernel (incluindo esta e a CVE-2014-4405) para obter execução irrestrita a partir de um app comum.

Versions

Affected
iOS anterior à versão 8 (iPhone 4s e posteriores, iPod touch 5ª geração e posteriores, iPad 2 e posteriores); Apple TV anterior à versão 7 (Apple TV 3ª geração e posteriores). O mesmo CVE também é listado pela Apple como corrigido no lançamento do OS X Yosemite 10.10, indicando que versões anteriores do OS X compartilhavam o componente vulnerável.
Fixed in
iOS 8.0; Apple TV 7.0; OS X Yosemite 10.10 (para o driver IOHIDFamily equivalente no macOS).

How to protect

Atualizar para iOS 8.0 ou posterior (dispositivos afetados: iPhone 4s e posteriores, iPod touch 5ª geração e posteriores, iPad 2 e posteriores) e para Apple TV 7.0 ou posterior (Apple TV 3ª geração e posteriores) elimina a falha — a Apple corrigiu através de melhor verificação de limites (bounds checking) no tratamento das key-mapping properties. Para o componente equivalente no macOS, a correção veio no lançamento do OS X Yosemite 10.10.

Não há paliativo de configuração real: a falha está em um driver de kernel exposto por padrão a qualquer processo, e não existe flag documentada para desabilitar o acesso do IOHIDFamily a apps sem quebrar funcionalidade básica de entrada do dispositivo. Restringir a instalação de apps a fontes confiáveis (não fazer sideload, evitar perfis de configuração/MDM não confiáveis) reduz a superfície de exposição, mas não corrige o bug — é mitigação de risco operacional, não da vulnerabilidade em si.

Dispositivos que não recebem mais atualizações do fabricante e ficaram presos em iOS anterior à versão 8 ou Apple TV anterior à 7 permanecem vulneráveis de forma permanente; não há workaround de terceiros documentado para esses casos.

How to detect

Não há assinatura de rede: a exploração é inteiramente local, dentro do dispositivo, via chamadas à interface do IOHIDFamily. Não existe sinal de tráfego confiável para detectar tentativas de exploração.

Sinais possíveis, embora não conclusivos, incluem panic logs do kernel referenciando IOHIDFamily ou corrupção de heap no subsistema HID, e comportamento de apps que abrem conexões IOKit para user clients de HID sem justificativa funcional aparente (relevante em contexto de análise forense pós-comprometimento ou MDM com telemetria de kernel). Para a maioria dos ambientes corporativos, a única defesa prática auditável é confirmar a versão de iOS/tvOS instalada nos dispositivos gerenciados.

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.
Heap-based buffer overflow in IOHIDFamily in Apple iOS before 8 and Apple TV before 7 allows attackers to execute arbitrary code in a privileged context via an application that provides crafted key-mapping properties.
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.