ASA-2019-00479 – 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-00479

Identificador(es)

ASA-2019-00479, CVE-2019-14192

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

Existe 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 a execução de nc_input_packet().

Detalhes técnicos

A função net_process_received_packet() está sujeita a um integer underflow ao usar ip-> udp_len sem validação. Posteriormente este campo é usado em um memcpy() em nc_input_packet() e qualquer handler 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-14192
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14192

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

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

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