CVE Catalog

CVE-2026-90391

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, lib/test_hmm's dmirror_fault() returns 0 when mmget_not_zero() fails, even though no page was faulted and no device page table entry was installed. This causes the caller to retry the same address, hit -ENOENT again, and loop forever. The fix returns -EFAULT instead.

Risk Assessment

An infinite loop in the ioctl may hang the process or exhaust CPU resources. Systems using the test HMM module are affected.

Recommendation

Update the Linux kernel to a version with the fix that returns -EFAULT when the mirrored mm is no longer faultable. Avoid using the test_hmm module in production.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: lib/test_hmm: fail dmirror_fault() when the mirrored mm is gone dmirror_fault() is called from the dmirror_read() and dmirror_write() retry loops after dmirror_do_read() or dmirror_do_write() finds a missing device page table entry. If the mirrored mm has already exited, mmget_not_zero() fails. The current code returns 0 in that case, which tells the caller that faulting succeeded even though no page was faulted and no device page table entry was installed. The caller then retries the same address, hits -ENOENT again, and can loop forever without making progress. Return -EFAULT instead, so the ioctl fails when the mirrored mm is no longer faultable.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS