ASA-2019-00486 – Das U-Boot: memcpy sem definição de limite ao analisar um pacote UDP devido a um integer underflow


For the English version of this alert, click here.

Allele Security Alert

ASA-2019-00486

Identificador(es)

ASA-2019-00486, CVE-2019-14199

Título

memcpy sem definição de limite ao analisar um pacote UDP devido a um integer underflow

Fabricante(s)

DENX Software Engineering

Produto(s)

Das U-Boot

Versão(ões) afetada(s)

Desconhecido

Versão(ões) corrigida(s)

Desconhecido

Prova de conceito

Desconhecido

Descrição

Há uma chamada memcpy sem definição de limite ao analisar um pacote UDP devido a um integer underflow na função net_process_received_packet() durante uma chamada *udp_packet_handler().

Detalhes técnicos

A função net_process_received_packet() está sujeita a um integer underflow ao utilizar ip->udp_len sem validação. Posteriormente este campo é usado em um memcpy() em nc_input_packet() e qualquer manipulador de pacotes udp que são definidos via net_set_udp_handler(DNS, dhcp,…).

#if defined(CONFIG_NETCONSOLE) && !defined(CONFIG_SPL_BUILD)
                 nc_input_packet((uchar *)ip + IP_UDP_HDR_SIZE,
                                                src_ip,
                                                ntohs(ip->udp_dst),
                                                ntohs(ip->udp_src),
                                                ntohs(ip->udp_len) - UDP_HDR_SIZE); <-- integer underflow
#endif
                 /*
                  * IP header OK. Pass the packet to the current handler.
                  */
                 (*udp_packet_handler)((uchar *)ip + IP_UDP_HDR_SIZE,
                                                           ntohs(ip->udp_dst),
                                                           src_ip,
                                                           ntohs(ip->udp_src),
                                                           ntohs(ip->udp_len) - UDP_HDR_SIZE); // <- integer underflow

Créditos

Fermín Serna, Pavel Avgustinov e Kevin Backhouse

Referência(s)

U-Boot RCE Vulnerabilities Affecting IoT Devices
https://blog.semmle.com/uboot-remote-code-execution-vulnerability/

U-Boot NFS RCE Vulnerabilities (CVE-2019-14192)
https://blog.semmle.com/uboot-rce-nfs-vulnerability/

[U-Boot] Remote code execution vulnerabilities in U-Boot’s NFS and other IP parsing code
https://lists.denx.de/pipermail/u-boot/2019-July/378001.html

CVE-2019-14199
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14199

CVE-2019-14199
https://nvd.nist.gov/vuln/detail/CVE-2019-14199

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

Última modificação: 11 agosto 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.