Description
In the Linux kernel, the following vulnerability has been resolved: dax: read holder_ops once in dax_holder_notify_failure() dax_holder_notify_failure() reads dax_dev->holder_ops twice without READ_ONCE() -- once for the NULL check and once for the indirect notify_failure() call. A concurrent fs_put_dax() can clear holder_ops between the two reads, so the check can observe a non-NULL pointer while the call dereferences NULL. (kill_dax() also clears holder_ops, but only after synchronize_srcu(), so it cannot race a reader that is inside dax_read_lock(); fs_put_dax() does no such synchronization.) Fetch holder_ops once into a local with READ_ONCE() so the NULL check and the indirect call observe the same value.
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
8012b866085523758780850087102421dbcce522 to < 1661b9bf78def01a8c96409569772d9b2592f4baaffected8012b866085523758780850087102421dbcce522 to < 0a42180d5410c98829ee72d1d426fb7faf9e6873affected8012b866085523758780850087102421dbcce522 to < ee1251621d1c7cf3155c6704542cbb358d799968affected8012b866085523758780850087102421dbcce522 to < 6a37acecc7c29136235cbc446a1b89e81414344baffected8012b866085523758780850087102421dbcce522 to < eb412f80311fc7ab6eb3203091a3fe59a5e9fd30affected8012b866085523758780850087102421dbcce522 to < 7ae9d15bdcde0f2955ae13b6a95587f9e23b2359affected
Linux Linux
Default version status: affected
6.0affected0 to < 6.0unaffected6.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/1661b9bf78def01a8c96409569772d9b2592f4ba ↗
- https://git.kernel.org/stable/c/0a42180d5410c98829ee72d1d426fb7faf9e6873 ↗
- https://git.kernel.org/stable/c/ee1251621d1c7cf3155c6704542cbb358d799968 ↗
- https://git.kernel.org/stable/c/6a37acecc7c29136235cbc446a1b89e81414344b ↗
- https://git.kernel.org/stable/c/eb412f80311fc7ab6eb3203091a3fe59a5e9fd30 ↗
- https://git.kernel.org/stable/c/7ae9d15bdcde0f2955ae13b6a95587f9e23b2359 ↗