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

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 (security update 2018-001)

macOS Sierra (security update 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 overflows in macOS NFS client (CVE-2018-4259, CVE-2018-4286, CVE-2018-4287, CVE-2018-4288, CVE-2018-4291)
https://lgtm.com/blog/apple_xnu_nfs_vfsops_CVE-2018-4259

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

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

CVE-2018-4259
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-4259

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

CVE-2018-4286
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-4286

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

CVE-2018-4287
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-4287


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

Última modificação: 9 de novembro de 2018