CVE-2026-64456 in Linuxinfo

Zusammenfassung

von VulDB • 25.07.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

hwrng: virtio: Begrenzung der vom Gerät gemeldeten used.len in copy_data()

random_recv_done() speichert die vom Gerät gemeldete used.len direkt in vi->data_avail. Anschließend indiziert copy_data() vi->data[] mit Hilfe von vi->data_idx (das durch vorherige Aufrufe von copy_data() erhöht wird) und führt ein memcpy() aus, ohne beide Werte erneut gegen die gepostete Puffergröße sizeof(vi->data) (SMP_CACHE_BYTES Bytes, typischerweise 32 oder 64) zu validieren.

Ein bösartiger oder fehlerhafter virtio-rng-Backend kann used.len über sizeof(vi->data) hinaus setzen und das memcpy() jenseits des Endes des Inline-Arrays in benachbarte kmalloc-1k-Slab-Bytes lenken. hwrng_fillfn() mischt diese Bytes in den Gast-RNG, und der Root-Benutzer im Gast kann sie auch direkt über /dev/hwrng beobachten.

Konkrete Auswirkungen bestehen innerhalb des Gastes:

- Speichersicherheit/Härtung: Jeder virtio-rng-Backend, das used.len zu hoch angibt (over-reports), führt dazu, dass der Treiber jenseits von vi->data in nicht zugehörige Slab-Inhalte liest. hwrng_fillfn() ist ein Kernel-Thread, der ausgeführt wird, sobald das Gerät erkannt wurde; es ist keine Interaktion mit dem Gast-Benutzerraum erforderlich, um die OOB-Schwachstelle (Out-of-Bounds) zunächst auszulösen.

- Cross-Grenz-Leckage (Bedrohungsmodell für Confidential Computing): Ein bösartiger Hypervisor in Zusammenarbeit mit einem böswilligen oder kompromittierten Root-Benutzerraum im Gast kann /dev/hwrng als Leckkanal für Heap-Daten des Gast-Kernels nutzen. Der Host setzt eine große used.len, der Gast-Root liest /dev/hwrng, und die zurückgegebenen Bytes enthalten Slab-Inhalte des Gast-Kernels, die benachbart zu vi->data waren. In der Praxis deaktivieren Confidential Computing-Gäste (SEV-SNP, TDX) virtio-rng meist vollständig, sodass dieser Pfad schmal ist; die Korrektur bleibt jedoch wertvoll, da der zugrunde liegende Speichersicherheits-Bug den Gast-RNG auf jedem Host kontaminiert.

KASAN bestätigt das OOB-Fehlerereignis in einem 7.1-rc4-Gast, dessen virtio-rng-Backend so gepatcht wurde, dass es used.len = 0x10000 meldet:

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)

Dies ist derselbe Fehlerklassen wie Commit c04db81cd028 ("net/9p: Fix buffer overflow

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Zuständig

Linux

Reservieren

19.07.2026

Veröffentlichung

25.07.2026

Moderieren

akzeptiert

Eintrag

VDB-383246

CPE

bereit

EPSS

0.00220

KEV

nein

Aktivitäten

low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!