CVE-2025-40231

vsock: fix lock inversion in vsock_assign_transport()

State
Published
Severity
Not scored
Published
Dec 4, 2025
Updated
May 23, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

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().

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 8667e8d0eb46bc54fdae30ba2f4786407d3d88eb to before ce4f856c64f0bc30e29302a0ce41f4295ca391c5Affected
  • 36a439049b34cca0b3661276049b84a1f76cc21a to before 09bba278ccde25a14b6e5088a9e65a8717d0cccfAffected
  • 9ce53e744f18e73059d3124070e960f3aa9902bf to before b44182c116778feaa05da52a426aeb9da1878dcfAffected
  • 9d24bb6780282b0255b9929abe5e8f98007e2c6e to before 42ed0784d11adebf748711e503af0eb9f1e6d81dAffected
  • ae2c712ba39c7007de63cb0c75b51ce1caaf1da5 to before 251caee792a21eb0b781aab91362b422c945e162Affected
  • 687aa0c5581b8d4aa87fd92973e4ee576b550cdf to before a2a4346eea8b4cb75037dbcb20b98cb454324f80Affected
  • 687aa0c5581b8d4aa87fd92973e4ee576b550cdf to before f7c877e7535260cc7a21484c994e8ce7e8cb6780Affected
  • 7b73bddf54777fb62d4d8c7729d0affe6df04477Affected
  • 5.10.240 to before 5.10.246Affected
  • 5.15.189 to before 5.15.196Affected
  • 6.1.146 to before 6.1.158Affected
  • 6.6.99 to before 6.6.115Affected
  • 6.12.39 to before 6.12.56Affected
  • 6.15.7 to before 6.16Affected
LinuxLinux
  • 6.16Affected
  • before 6.16Not affected
  • 5.10.246 through 5.10.*Not affected
  • 5.15.196 through 5.15.*Not affected
  • 6.1.158 through 6.1.*Not affected
  • 6.6.115 through 6.6.*Not affected
  • 6.12.56 through 6.12.*Not affected
  • 6.17.6 through 6.17.*Not affected
  • 6.18 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.