Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
b2ef9f5a5cb37643ca5def3516c546457074b882 to < 50606ced303782f8715e2d0b98ca374ea498fa29affectedb2ef9f5a5cb37643ca5def3516c546457074b882 to < 541a67f21ab807c8dbc0ea88d5a2eb73b2618090affectedb2ef9f5a5cb37643ca5def3516c546457074b882 to < d8e64ffab01e032ae29159d27230ace8cf8bdc80affectedb2ef9f5a5cb37643ca5def3516c546457074b882 to < 2636569ea7c19d9a40db4a1e8d0a027bdacf1569affectedb2ef9f5a5cb37643ca5def3516c546457074b882 to < 701347e31aa607f3782403151a3125729d685275affectedb2ef9f5a5cb37643ca5def3516c546457074b882 to < af7a6d6ec36a16a583ba2e4e9984c3cf1fe34655affectedb2ef9f5a5cb37643ca5def3516c546457074b882 to < a2074f86fc9653831e4fb7b711bb715db330f182affectedb2ef9f5a5cb37643ca5def3516c546457074b882 to < 6a8024511ddf4877435c34fb3d6028aa8e590649affected
Linux Linux
Default version status: affected
5.8affected0 to < 5.8unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/50606ced303782f8715e2d0b98ca374ea498fa29 ↗
- https://git.kernel.org/stable/c/541a67f21ab807c8dbc0ea88d5a2eb73b2618090 ↗
- https://git.kernel.org/stable/c/d8e64ffab01e032ae29159d27230ace8cf8bdc80 ↗
- https://git.kernel.org/stable/c/2636569ea7c19d9a40db4a1e8d0a027bdacf1569 ↗
- https://git.kernel.org/stable/c/701347e31aa607f3782403151a3125729d685275 ↗
- https://git.kernel.org/stable/c/af7a6d6ec36a16a583ba2e4e9984c3cf1fe34655 ↗
- https://git.kernel.org/stable/c/a2074f86fc9653831e4fb7b711bb715db330f182 ↗
- https://git.kernel.org/stable/c/6a8024511ddf4877435c34fb3d6028aa8e590649 ↗