CVEvulnerability
CVE-2026-90167
- Status
- Received
- Published
- 2026-09-17
- Last modified
- 2026-10-21
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Description
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: serialize oplock close with pending break ownership
close may abort an in-flight oplock break while another breaker already
holds an opinfo reference. Releasing pending_break wakes that waiter, but
without serializing the close transition with bit acquisition it can become
a new break owner through the test_and_set_bit() fast path. It can then
overwrite OPLOCK_CLOSING with OPLOCK_ACK_WAIT and continue a break for
a dying opinfo.
Make OPLOCK_CLOSING terminal once the opinfo is removed from the inode
list. Serialize that transition, pending_break acquisition, and
OPLOCK_ACK_WAIT setup with an opinfo state lock. A breaker which loses
the race releases its ownership and returns -ENOENT. Explicitly wake
pending_break waiters during close so they can observe the terminal state.
Also prevent ACK and timeout paths from replacing OPLOCK_CLOSING with
OPLOCK_STATE_NONE.
References
- https://git.kernel.org/stable/c/5f97bac88bfb333f426f01c118b8235e75af8d96 git.kernel.org
- https://git.kernel.org/stable/c/7148a6c06ddf1c263a1cf422bee541f24d3d3926 git.kernel.org
- https://git.kernel.org/stable/c/7d6e682b7633120c2f93400b8c6f335d9d8e5318 git.kernel.org
- https://git.kernel.org/stable/c/b0148dc5625dbfd50596ac63c7487c12e8a8ab03 git.kernel.org
- https://git.kernel.org/stable/c/dc1e34f78dfab755fab9ad820ac5f82348fe1792 git.kernel.org