CVE Catalog

CVE-2026-93073

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, the dax module's 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 observes a non-NULL pointer while the call dereferences NULL.

Risk Assessment

This can lead to a NULL pointer dereference and kernel crash (denial of service) under race conditions.

Recommendation

Update the Linux kernel to a version with the fix. Avoid concurrent DAX device detach during memory error handling.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

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