CVE-2025-40231 Details
Description
In the Linux kernel, the following vulnerability has been resolved: vsock: fix lock inversion in vsock_assign_transport() Syzbot reported a potential lock inversion deadlock between vsock_register_mutex and sk_lock-AF_VSOCK when vsock_linger() is called. The issue was introduced by commit 687aa0c5581b ("vsock: Fix transport_* TOCTOU") which added vsock_register_mutex locking in vsock_assign_transport() around the transport->release() call, that can call vsock_linger(). vsock_assign_transport() can be called with sk_lock held. vsock_linger() calls sk_wait_event() that temporarily releases and re-acquires sk_lock. During this window, if another thread hold vsock_register_mutex while trying to acquire sk_lock, a circular dependency is created. Fix this by releasing vsock_register_mutex before calling transport->release() and vsock_deassign_transport(). This is safe because we don't need to hold vsock_register_mutex while releasing the old transport, and we ensure the new transport won't disappear by obtaining a module reference first via try_module_get().
A lock inversion vulnerability causing a potential deadlock has been identified in the Linux kernel's vsock implementation. This issue arises in the vsock_assign_transport() function, where improper locking can lead to a circular dependency between vsock_register_mutex and sk_lock-AF_VSOCK. The vulnerability was introduced by a previous commit that altered the locking behavior, creating a scenario where vsock_linger() could be called with sk_lock held, temporarily releasing and re-acquiring it. If another thread holds vsock_register_mutex while trying to acquire sk_lock during this window, a deadlock occurs.
The vulnerability has been addressed by modifying the vsock_assign_transport() function to release vsock_register_mutex before calling transport->release() and vsock_deassign_transport(). This change ensures that the locking behavior does not create a deadlock scenario.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Dec 4, 2025References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://git.kernel.org/stable/c/09bba278ccde25a14b6e5088a9e65a8717d0cccf | kernel.org | Source CodeVendor |
| https://git.kernel.org/stable/c/251caee792a21eb0b781aab91362b422c945e162 | kernel.org | Source CodeVendor |
| https://git.kernel.org/stable/c/42ed0784d11adebf748711e503af0eb9f1e6d81d | kernel.org | Source CodeVendor |
| https://git.kernel.org/stable/c/a2a4346eea8b4cb75037dbcb20b98cb454324f80 | kernel.org | Source CodeVendor |
| https://git.kernel.org/stable/c/b44182c116778feaa05da52a426aeb9da1878dcf | kernel.org | Source CodeVendor |
| https://git.kernel.org/stable/c/ce4f856c64f0bc30e29302a0ce41f4295ca391c5 | kernel.org | Source CodeVendor |
| https://git.kernel.org/stable/c/f7c877e7535260cc7a21484c994e8ce7e8cb6780 | kernel.org | Source CodeVendor |
Weakness Enumeration
No weakness enumeration is available for this CVE.
Affected Products
| Product | Versions |
|---|---|
| Linux kernel | All versions |
CPE
Remediation
| |
Change History
2 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | kernel.org |
| Dec 4, 2025 | New CVE Received | kernel.org |
Volerion