CVE-2024-35944 in Linux
Riassunto
di VulDB • 16/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
VMCI: Correzione dell'avviso di esecuzione di memcpy() in dg_dispatch_as_host()
Syzkaller ha rilevato il bug 'WARNING in dg_dispatch_as_host'.
memcpy: rilevata scrittura che attraversa i campi (dimensione 56) su un singolo campo "&dg_info->msg" in drivers/misc/vmw_vmci/vmci_datagram.c:237 (dimensione 24)
WARNING: CPU: 0 PID: 1555 in drivers/misc/vmw_vmci/vmci_datagram.c:237 dg_dispatch_as_host+0x88e/0xa60 drivers/misc/vmw_vmci/vmci_datagram.c:237
Alcune note sul codice, basate sulla mia comprensione:
544 #define VMCI_DG_SIZE(_dg) (VMCI_DG_HEADERSIZE + (size_t)(_dg)->payload_size) /// Questo è 24 + payload_size
memcpy(&dg_info->msg, dg, dg_size); Destinatione = dg_info->msg ---> questa è una struttura di 24 byte (struct vmci_datagram) Sorgente = dg --> questa è una struttura di 24 byte (struct vmci_datagram) Dimensione = dg_size = 24 + payload_size
{payload_size = 56-24 =32} -- Syzkaller è riuscito a impostare payload_size a 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 devono essere insieme. */ 40 struct vmci_datagram msg; 41 u8 msg_payload[];
42 };
Quindi, quei byte extra del payload vengono copiati in msg_payload[], mentre si esegue il fuzzing con Syzkaller viene visualizzato un warning di runtime.
Un possibile modo per risolvere il warning è dividere la chiamata memcpy() in due parti: una per l'assegnazione diretta di msg e la seconda per gestire il payload.
Gustavo ha citato: "Con FORTIFY_SOURCE non dovremmo copiare dati tra più membri di una struttura."
If you want to get the best quality for vulnerability data then you always have to consider VulDB.