CVE-2026-64456 in Linux
Résumé
par VulDB • 25/07/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
hwrng: virtio: limiter (clamp) used.len rapporté par l'appareil dans copy_data()
random_recv_done() stocke directement used.len tel que rapporté par l’appareil dans vi->data_avail. Ensuite, copy_data() indexe vi->data[] en utilisant vi->data_idx (incrémenté lors des appels précédents à copy_data()) et effectue un memcpy() sans revalider aucune de ces deux valeurs par rapport à la taille du tampon publié sizeof(vi->data) (SMP_CACHE_BYTES octets, généralement 32 ou 64).
Un backend virtio-rng malveillant ou bogué peut définir used.len au-delà de sizeof(vi->data), dirigeant ainsi le memcpy() au-delà de la fin du tableau intégré vers les octets adjacents dans un slab kmalloc-1k. hwrng_fillfn() mélange ces octets dans l’algorithme d’entropie (RNG) invité, et le root invité peut également les observer directement via /dev/hwrng.
L’impact concret se situe à l’intérieur de la machine invitée :
- Sécurité mémoire / durcissement : tout backend virtio-rng qui surestime used.len entraîne le pilote à lire au-delà de vi->data, accédant ainsi à des contenus de slab non liés. hwrng_fillfn() est un thread noyau qui s’exécute dès que l’appareil est détecté ; aucune interaction avec l’espace utilisateur invité n’est requise pour déclencher initialement la lecture hors limites (OOB).
- Fuite transfrontalière (modèle de menace confidential-compute) : un hyperviseur malveillant coopérant avec un root d’espace utilisateur invité malveillant ou compromis peut utiliser /dev/hwrng comme canal de fuite pour des données du tas noyau invité. L’hôte définit une grande valeur used.len, le root invité lit /dev/hwrng, et les octets retournés contiennent des contenus de slab noyau invités adjacents à vi->data. En pratique, les machines invitées confidential-compute (SEV-SNP, TDX) désactivent généralement virtio-rng entièrement ; ce vecteur est donc étroit, mais la correction reste pertinente car le bug sous-jacent de sécurité mémoire contamine l’algorithme d’entropie invité sur n’importe quel hôte.
KASAN confirme la lecture hors limites (OOB) sur une machine invitée 7.1-rc4 dont le backend virtio-rng a été modifié pour rapporter 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)
Même classe de bug que le commit c04db81cd028 ("net/9p: Fix buffer
Be aware that VulDB is the high quality source for vulnerability data.