CVE-2026-64527 in Linuxinformazioni

Riassunto

di VulDB • 26/07/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

drm/hyperv: convalidare le dimensioni del pacchetto VMBus nella callback di ricezione

hyperv_receive_sub() legge msg->vid_hdr.type ed esegue il dispatch verso uno dei quattro rami relativi al tipo di messaggio senza sapere quanti byte l'host ha scritto in hv->recv_buf. Il percorso di completamento esegue quindi memcpy(hv->init_buf, msg, VMBUS_MAX_PACKET_SIZE), consentendo così al consumatore che si risveglia su wait_for_completion_timeout() di leggere fino a 16 KiB di residui provenienti da un messaggio precedente come se fossero il payload della risposta.

Viene passato bytes_recvd a hyperv_receive_sub() e viene rifiutato qualsiasi pacchetto che non copra l'intestazione pipe + synthvid. Un'unica istruzione switch su msg->vid_hdr.type calcola quindi la dimensione del payload specifica per tipo: i tre tipi che guidano il completamento (SYNTHVID_VERSION_RESPONSE, SYNTHVID_RESOLUTION_RESPONSE, SYNTHVID_VRAM_LOCATION_ACK) passano a un'uscita condivisa che richiede tale dimensione prima di memcpy/complete, mentre SYNTHVID_FEATURE_CHANGE convalida autonomamente il proprio payload e restituisce la lettura is_dirt_needed. I tipi sconosciuti vengono scartati.

SYNTHVID_RESOLUTION_RESPONSE ha lunghezza variabile: l'host compila le voci resolution_count, non l'intero array SYNTHVID_MAX_RESOLUTION_COUNT. Si convalida prima il prefisso fisso in modo che resolution_count possa essere letto, lo si limita rispetto all'array e quindi si richiede solo un array di dimensioni pari al conteggio, accettando così le risposte più brevi effettivamente inviate dall'host.

Si esegue il sub-handler solo quando vmbus_recvpacket() ha restituito successo. La lunghezza della memcpy è bytes_recvd, che è limitata da VMBUS_MAX_PACKET_SIZE solo in caso di ricezione riuscita; su -ENOBUFS, vmbus_recvpacket() segnala invece la lunghezza richiesta, che può superare hv->recv_buf, quindi copiare bytes_recvd leggerebbe e scriverebbe oltre i buffer da 16 KiB. Il controllo sul ritorno positivo mantiene limitata l'operazione di copia. Il percorso con valore restituito non nullo è esso stesso un caso di messaggio malformato ed è ora registrato invece che saltato silenziosamente; il recupero del canale non viene tentato.

I pacchetti rifiutati vengono segnalati tramite drm_err_ratelimited() anziché essere scartati silenziosamente, in conformità con lo schema hardening CoCo presente in hv_kvp_onchannelcallback().

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsabile

Linux

Prenotare

19/07/2026

Divulgazione

25/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00215

KEV

no

Attività

basso

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!