CVE-2026-90391 PUBLISHED

lib/test_hmm: fail dmirror_fault() when the mirrored mm is gone

Assigner: Linux
Reserved: 11.09.2026 Published: 17.09.2026 Updated: 17.09.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from b2ef9f5a5cb37643ca5def3516c546457074b882 to 50606ced303782f8715e2d0b98ca374ea498fa29 (excl.)
  • affected from b2ef9f5a5cb37643ca5def3516c546457074b882 to 541a67f21ab807c8dbc0ea88d5a2eb73b2618090 (excl.)
  • affected from b2ef9f5a5cb37643ca5def3516c546457074b882 to d8e64ffab01e032ae29159d27230ace8cf8bdc80 (excl.)
  • affected from b2ef9f5a5cb37643ca5def3516c546457074b882 to 2636569ea7c19d9a40db4a1e8d0a027bdacf1569 (excl.)
  • affected from b2ef9f5a5cb37643ca5def3516c546457074b882 to 701347e31aa607f3782403151a3125729d685275 (excl.)
  • affected from b2ef9f5a5cb37643ca5def3516c546457074b882 to af7a6d6ec36a16a583ba2e4e9984c3cf1fe34655 (excl.)
  • affected from b2ef9f5a5cb37643ca5def3516c546457074b882 to a2074f86fc9653831e4fb7b711bb715db330f182 (excl.)
  • affected from b2ef9f5a5cb37643ca5def3516c546457074b882 to 6a8024511ddf4877435c34fb3d6028aa8e590649 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 5.8 is affected
  • unaffected from 0 to 5.8 (excl.)
  • unaffected from 5.10.270 to 5.10.* (incl.)
  • unaffected from 5.15.221 to 5.15.* (incl.)
  • unaffected from 6.1.188 to 6.1.* (incl.)
  • unaffected from 6.6.157 to 6.6.* (incl.)
  • unaffected from 6.12.110 to 6.12.* (incl.)
  • unaffected from 6.18.52 to 6.18.* (incl.)
  • unaffected from 7.2.6 to 7.2.* (incl.)
  • unaffected from 7.3-rc1 to * (incl.)

References