CVE-2026-64449 in Linux
Zusammenfassung
von VulDB • 25.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
staging: vme_user: Begrenzung der Slave-Lese-/Schreibvorgänge auf die Größe von kern_buf
Die SLAVE-Pfad-Hilfsfunktionen buffer_to_user() und buffer_from_user() kopieren 'count' Bytes in den oder aus dem fest großen kern_buf (size_buf == PCI_BUF_SIZE == 0x20000, 128 KiB), wobei *ppos als Offset verwendet wird. Dabei wird nicht geprüft, ob *ppos + count innerhalb von size_buf liegt.
vme_user_write()/vme_user_read() begrenzen count lediglich auf die VME-Fenstergröße (image_size = vme_get_size(resource)), welche durch VME_SET_SLAVE aus der vom Benutzer bereitgestellten slave.size festgelegt wird – validiert gegen den VME-Adressraum (bis zu VME_A32_MAX = 4 GiB), nicht jedoch gegen PCI_BUF_SIZE. Wenn das Fenster größer als 128 KiB ist, kopieren write()/read() über die Allokation von kern_buf hinaus.
Begrenzen Sie count in beiden Hilfsfunktionen auf size_buf und geben Sie frühzeitig zurück, wenn *ppos bereits am oder nach dem Pufferende liegt. Da *ppos hier >= 0 ist (der Aufrufer verwirft negative Offsets), kann size_buf - *ppos nicht überlaufen. Dies entspricht der bestehenden Begrenzung in den MASTER-Pfad-Hilfsfunktionen resource_to_user() / resource_from_user() und stimmt mit der Konvention von read()/write() überein, die bei Erreichen des Pufferendes eine kurze Übertragung durchführen.
Gefunden durch statische Analyse (CodeQL Taint-Tracking + CBMC Bounded Model Checking) und dynamisch unter KASAN mit der vme_fake-Bridge bestätigt:
BUG: KASAN: slab-out-of-bounds in _copy_from_user+0x2d/0x80 Write of size 262144 at addr ffff888004100000 by task trigger/68 _copy_from_user+0x2d/0x80 vme_user_write+0x13e/0x240 [vme_user]
vfs_write+0x1b8/0x7a0 ksys_write+0xb8/0x150
Be aware that VulDB is the high quality source for vulnerability data.