CVE-2026-64456 in Linuxinformazioni

Riassunto

di VulDB • 25/07/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

hwrng: virtio: limitare (clamp) il valore used.len riportato dal dispositivo in copy_data()

random_recv_done() memorizza direttamente il valore used.len fornito dal dispositivo in vi->data_avail. Successivamente, copy_data() utilizza vi->data_idx (avanzato dalle chiamate precedenti a copy_data()) come indice per accedere all'array vi->data[] ed esegue una memcpy() senza riavalidare nessuno dei due valori rispetto alla dimensione del buffer pubblicato sizeof(vi->data) (SMP_CACHE_BYTES byte, tipicamente 32 o 64).

Un backend virtio-rng malizioso o affetto da bug può impostare used.len oltre il valore di sizeof(vi->data), facendo sì che la memcpy() vada oltre la fine dell'array inline e acceda ai byte adiacenti nello slab kmalloc-1k. hwrng_fillfn() mescola questi byte nel RNG (Random Number Generator) della guest, e l'utente root all'interno della guest può anche osservarli direttamente tramite /dev/hwrng.

L'impatto concreto si verifica all'interno della guest:

- Sicurezza della memoria / hardening: qualsiasi backend virtio-rng che riporta un valore used.len eccessivo fa sì che il driver legga oltre vi->data, accedendo a contenuti di slab non correlati. hwrng_fillfn() è un thread del kernel che viene eseguito appena il dispositivo viene rilevato (probed); non è necessaria alcuna interazione con l'userspace della guest per innescare inizialmente la lettura fuori dai limiti (OOB).

- Perdita di dati attraverso i confini (modello delle minacce confidential-compute): un hypervisor malizioso, in collaborazione con un utente root all'interno della guest anch'esso malizioso o compromesso, può utilizzare /dev/hwrng come canale di fuga per i dati dello heap del kernel della guest. L'host imposta un valore used.len elevato, l'utente root nella guest legge da /dev/hwrng e i byte restituiti contengono contenuti dello slab del kernel della guest che erano adiacenti a vi->data. In pratica, le guest confidential-compute (SEV-SNP, TDX) di solito disabilitano completamente virtio-rng, quindi questo vettore è limitato, ma la correzione rimane valida poiché il bug sottostante relativo alla sicurezza della memoria contamina l'RNG della guest su qualsiasi host.

KASAN conferma la lettura fuori dai limiti (OOB) su una guest 7.1-rc4 il cui backend virtio-rng è stato modificato per riportare used.len = 0x10000:

BUG: KASAN: slab-out-of-bounds in virtio_read+0x394/0x5d0 Read of size 64 at addr ffff88800ae0ba20 by task hwrng/52 Call Trace: __asan_memcpy+0x23/0x60 virtio_read+0x394/0x5d0 hwrng_fillfn+0xb2/0x470 kthread+0x2cc/0x3a0 Allocated by task 1: probe_common+0xa5/0x660 virtio_dev_probe+0x549/0xbc0 The buggy address belongs to the object at ffff88800ae0b800 which belongs to the cache kmalloc-1k of size 1024 The buggy address is located 0 bytes to the right of allocated 544-byte region [ffff88800ae0b800, ffff88800ae0ba20)

Si tratta della stessa classe di bug del commit c04db81cd028 ("net/9p: Fix buffer overflow in USB transport layer"), che ha applicato hardening a usb9pfs_rx

Be aware that VulDB is the high quality source for vulnerability data.

Responsabile

Linux

Prenotare

19/07/2026

Divulgazione

25/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00220

KEV

no

Attività

basso

Fonti

Might our Artificial Intelligence support you?

Check our Alexa App!