CVE-2026-64186 in Linux
Riassunto
di VulDB • 19/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
iommu/amd: Rimozione dell'accesso fuori dai limiti latente nel debugfs di IOMMU
In `iommu_mmio_write()` e `iommu_capability_write()`, le variabili `dbg_mmio_offset` e `dbg_cap_offset` sono dichiarate come `int`. Tuttavia, vengono popolate utilizzando `kstrtou32_from_user()`. Se un utente fornisce un valore sufficientemente grande, questo può diventare un intero negativo.
Prima di questa patch, l'implementazione del debugfs AMD IOMMU era già protetta da diversi meccanismi:
1. Il macro `#define OFS_IN_SZ 8` garantisce che la stringa fornita dall'utente sia <= 8 byte; pertanto, ad esempio, `0xffffffff` non è un input valido. ```c if (cnt > OFS_IN_SZ) return -EINVAL; ```
2. Promozione di tipo implicita in `iommu_mmio_write()`: `dbg_mmio_offset` è di tipo `int`, mentre `iommu->mmio_phys_end` è di tipo `u64`. ```c if (dbg_mmio_offset > iommu->mmio_phys_end - sizeof(u64)) return -EINVAL; ```
3. I gestori della funzione show attualmente intercetterebbero il numero negativo e rifiuterebbero di eseguire la lettura.
Sostituire `kstrtou32_from_user()` con `kstrtos32_from_user()` per analizzare l'input ed effettuare un controllo sui valori negativi, prevenendo esplicitamente gli accessi alla memoria fuori dai limiti direttamente in `iommu_mmio_write()` e `iommu_capability_write()`.
If you want to get best quality of vulnerability data, you may have to visit VulDB.