CVE-2026-23067

In the Linux kernel, the following vulnerability has been resolved: iommu/io-pgtable-arm: fix size_t signedness bug in unmap path __arm_lpae_unmap() returns size_t but was returning -ENOENT (negative error code) when encountering an unmapped PTE. Since size_t is unsigned, -ENOENT (typically -2) becomes a huge positive value (0xFFFFFFFFFFFFFFFE on 64-bit systems). This corrupted value propagates through the call chain: __arm_lpae_unmap() returns -ENOENT as size_t -> arm_lpae_unmap_pages() returns it -> __iommu_unmap() adds it to iova address -> iommu_pgsize() triggers BUG_ON due to corrupted iova This can cause IOVA address overflow in __iommu_unmap() loop and trigger BUG_ON in iommu_pgsize() from invalid address alignment. Fix by returning 0 instead of -ENOENT. The WARN_ON already signals the error condition, and returning 0 (meaning "nothing unmapped") is the correct semantic for size_t return type. This matches the behavior of other io-pgtable implementations (io-pgtable-arm-v7s, io-pgtable-dart) which return 0 on error conditions.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:*

History

13 Mar 2026, 21:27

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: iommu/io-pgtable-arm: corrección de error de signo de size_t en la ruta de desmapeo __arm_lpae_unmap() devuelve size_t pero estaba devolviendo -ENOENT (código de error negativo) al encontrar una PTE no mapeada. Dado que size_t no tiene signo, -ENOENT (típicamente -2) se convierte en un valor positivo enorme (0xFFFFFFFFFFFFFFFE en sistemas de 64 bits). Este valor corrupto se propaga a través de la cadena de llamadas: __arm_lpae_unmap() devuelve -ENOENT como size_t -> arm_lpae_unmap_pages() lo devuelve -> __iommu_unmap() lo añade a la dirección iova -> iommu_pgsize() activa BUG_ON debido a iova corrupta Esto puede causar un desbordamiento de dirección IOVA en el bucle de __iommu_unmap() y activar BUG_ON en iommu_pgsize() por una alineación de dirección inválida. Se corrige devolviendo 0 en lugar de -ENOENT. El WARN_ON ya señala la condición de error, y devolver 0 (que significa 'nada desmapeado') es la semántica correcta para el tipo de retorno size_t. Esto coincide con el comportamiento de otras implementaciones de io-pgtable (io-pgtable-arm-v7s, io-pgtable-dart) que devuelven 0 en condiciones de error.
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
References () https://git.kernel.org/stable/c/374e7af67d9d9d6103c2cfc8eb32abfecf3a2fd8 - () https://git.kernel.org/stable/c/374e7af67d9d9d6103c2cfc8eb32abfecf3a2fd8 - Patch
References () https://git.kernel.org/stable/c/41ec6988547819756fb65e94fc24f3e0dddf84ac - () https://git.kernel.org/stable/c/41ec6988547819756fb65e94fc24f3e0dddf84ac - Patch
CPE cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:*
CWE CWE-617
First Time Linux
Linux linux Kernel

04 Feb 2026, 17:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-02-04 17:16

Updated : 2026-03-13 21:27


NVD link : CVE-2026-23067

Mitre link : CVE-2026-23067

CVE.ORG link : CVE-2026-23067


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-617

Reachable Assertion