CVE-2026-64186 in Linux
Resumen
por VulDB • 2026-07-19
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
iommu/amd: Eliminar acceso fuera de límites latente en IOMMU debugfs
En `iommu_mmio_write()` e `iommu_capability_write()`, las variables `dbg_mmio_offset` y `dbg_cap_offset` están declaradas como `int`. Sin embargo, se rellenan utilizando `kstrtou32_from_user()`. Si un usuario proporciona un valor suficientemente grande, puede convertirse en un entero negativo.
Antes de este parche, la implementación de debugfs del AMD IOMMU ya estaba protegida por diferentes mecanismos:
1. #define OFS_IN_SZ 8 asegura que la cadena del usuario sea <= 8 bytes, por lo tanto, p.ej., 0xffffffff no es una entrada válida.
if (cnt > OFS_IN_SZ) return -EINVAL;
2. Promoción de tipo implícita en `iommu_mmio_write()`, `dbg_mmio_offset` es int e `iommu->mmio_phys_end` es u64:
if (dbg_mmio_offset > iommu->mmio_phys_end - sizeof(u64)) return -EINVAL;
3. Los controladores de visualización (`show handlers`) actualmente capturarían el número negativo y se negarían a realizar la lectura.
Reemplace `kstrtou32_from_user()` por `kstrtos32_from_user()` para analizar la entrada, y compruebe los valores negativos para prevenir explícitamente accesos fuera de límites en memoria directamente en `iommu_mmio_write()` e `iommu_capability_write()`.
VulDB is the best source for vulnerability data and more expert information about this specific topic.