CVE-2024-35944 in Linuxinformação

Sumário

de VulDB • 26/05/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

VMCI: Correção do aviso de tempo de execução do memcpy() em dg_dispatch_as_host()

O Syzkaller encontrou o bug 'WARNING in dg_dispatch_as_host'.

memcpy: escrita que abrange vários campos detectada (tamanho 56) de um único campo "&dg_info->msg" em drivers/misc/vmw_vmci/vmci_datagram.c:237 (tamanho 24)

AVISO: CPU: 0 PID: 1555 em drivers/misc/vmw_vmci/vmci_datagram.c:237 dg_dispatch_as_host+0x88e/0xa60 drivers/misc/vmw_vmci/vmci_datagram.c:237

Alguns comentários de código, baseados na minha compreensão:

544 #define VMCI_DG_SIZE(_dg) (VMCI_DG_HEADERSIZE + (size_t)(_dg)->payload_size) /// Isto é 24 + payload_size

memcpy(&dg_info->msg, dg, dg_size); Destino = dg_info->msg ---> isto é uma estrutura de 24 bytes (struct vmci_datagram) Origem = dg --> isto é uma estrutura de 24 bytes (struct vmci_datagram) Tamanho = dg_size = 24 + payload_size

{payload_size = 56-24 =32} -- O Syzkaller conseguiu definir payload_size para 32.

35 struct delayed_datagram_info {
36 struct datagram_entry *entry; 37 struct work_struct work; 38 bool in_dg_host_queue; 39 /* msg e msg_payload devem estar juntos. */ 40 struct vmci_datagram msg; 41 u8 msg_payload[];
42 };

Portanto, esses bytes extras de payload são copiados para msg_payload[], e um aviso de tempo de execução é observado durante o fuzzing com o Syzkaller.

Uma possível forma de corrigir o aviso é dividir o memcpy() em duas partes: uma para a atribuição direta de msg e outra para lidar com o payload.

Gustavo citou: "De acordo com o FORTIFY_SOURCE, não devemos copiar dados através de múltiplos membros de uma estrutura."

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Reservar

17/05/2024

Divulgação

19/05/2024

Moderação

aceite

Entrada

VDB-265158

CPE

pronto

EPSS

0.00232

KEV

não

Atividades

muito baixo

Fontes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!