ASA-2018-00024 – Apple XNU: Vulnerabilidade durante manipulação de pacote ICMP


For the English version of this alert, click here.

Allele Security Alert

ASA-2018-00024

Identificador(es)

ASA-2018-00024, CVE-2018-4407

Título

Vulnerabilidade durante manipulação de pacote ICMP

Fabricante(s)

Apple

Produto(s)

iOS

macOS

Versão(ões) afetada(s)

Apple iOS 11 e anterior: todos dispositivos

Apple macOS High Sierra, até e incluindo 10.13.6: todos dispositivos

Apple macOS Sierra, até e incluindo 10.12.6: todos dispositivos

Apple OS X El Capitan e anterior: todos dispositivos

Versão(ões) corrigida(s)

iOS 12

macOS 10.14

macOS High Sierra (atualização de segurança 2018-001)

macOS Sierra (atualização de segurança 2018-005)

Prova de conceito

Desconhecido

Descrição

Existe uma vulnerabilidade de buffer overflow na função icmp_error() no arquivo bsd/netinet/ip_icmp.c na linha 339. Esta função gera um pacote de erro do tipo error em resposta para um pacote ip incorreto. O protocolo ICMP é usado para enviar a mensagem de erro. Ela chama m_copydata() para copiar o cabeçalho do pacote incorreto em uma mensagem ICMP mas não valida corretamente se o cabeçalho é muito grande para o buffer de destino e então um buffer overflow na heap pode ocorrer.

Código vulnerável:

File: bsd/netinet/ip_icmp.c
---
202 void
203 icmp_error(
204 struct mbuf *n,
205 int type,
206 int code,
207 u_int32_t dest,
208 u_int32_t nextmtu)
209 {
...
287 icmplen = min(oiphlen + icmpelen, min(nlen, oip->ip_len));
...
293 if (MHLEN > (sizeof(struct ip) + ICMP_MINLEN + icmplen))
294 m = m_gethdr(M_DONTWAIT, MT_HEADER); /* MAC-OK */
295 else
296 m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
...
314 icp = mtod(m, struct icmp *);
...
339 m_copydata(n, 0, icmplen, (caddr_t)&icp->icmp_ip);
...
372 }
---

O pesquisador responsável por encontrar este problema descobriu que o buffer overflow é acionado quando ‘icmplen’ >= 84.

Referência(s)

Semmle Discovers Six Critical Vulnerabilities Affecting Macs, iPhones, and iPads
https://semmle.com/news/apple-xnu-kernel-icmp-nfs-vulnerabilities

Kernel RCE caused by buffer overflow in Apple’s ICMP packet-handling code (CVE-2018-4407)
https://lgtm.com/blog/apple_xnu_icmp_error_CVE-2018-4407

APPLE-SA-2018-10-30-8 Additional information for APPLE-SA-2018-9-24-4 iOS 12
https://lists.apple.com/archives/security-announce/2018/Oct/msg00009.html

APPLE-SA-2018-10-30-10 Additional information for APPLE-SA-2018-9-24-5 watchOS 5
https://lists.apple.com/archives/security-announce/2018/Oct/msg00011.html

APPLE-SA-2018-10-30-2 macOS Mojave 10.14.1, Security Update 2018-001 High Sierra, Security Update 2018-005 Sierra
https://lists.apple.com/archives/security-announce/2018/Oct/msg00003.html

APPLE-SA-2018-10-30-11 Additional information for APPLE-SA-2018-9-24-6 tvOS 12
https://lists.apple.com/archives/security-announce/2018/Oct/msg00012.html

CVE-2018-4407
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-4407

CVE-2018-4407
https://nvd.nist.gov/vuln/detail/CVE-2018-4407

Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.

Última modificação: 1 fevereiro 2019

Não somos responsáveis por qualquer perda de dados, corrupção de dispositivos ou qualquer outro tipo de problema devido ao uso de qualquer informação mencionada em nossos alertas de segurança.