Description
In the Linux kernel, the following vulnerability has been resolved: net/rds: Fix circular locking dependency in rds_tcp_tune syzbot reported a circular locking dependency in rds_tcp_tune() where sk_net_refcnt_upgrade() is called while holding the socket lock: ====================================================== WARNING: possible circular locking dependency detected ====================================================== kworker/u10:8/15040 is trying to acquire lock: ffffffff8e9aaf80 (fs_reclaim){+.+.}-{0:0}, at: __kmalloc_cache_noprof+0x4b/0x6f0 but task is already holding lock: ffff88805a3c1ce0 (k-sk_lock-AF_INET6){+.+.}-{0:0}, at: rds_tcp_tune+0xd7/0x930 The issue occurs because sk_net_refcnt_upgrade() performs memory allocation (via get_net_track() -> ref_tracker_alloc()) while the socket lock is held, creating a circular dependency with fs_reclaim. Fix this by moving sk_net_refcnt_upgrade() outside the socket lock critical section. This is safe because the fields modified by the sk_net_refcnt_upgrade() call (sk_net_refcnt, ns_tracker) are not accessed by any concurrent code path at this point. v2: - Corrected fixes tag - check patch line wrap nits - ai commentary nits
Product status
3a58f13a881ed351198ffab4cf9953cf19d2ab3a (git) before 8babb271403378ba6836f6c8599c5313d0e2355d
3a58f13a881ed351198ffab4cf9953cf19d2ab3a (git) before 8519e6883a942e510f33a0e634e27bcc3a844a40
3a58f13a881ed351198ffab4cf9953cf19d2ab3a (git) before 6ce948fa54599f369ff7fe8b793a6aae4b0762b2
3a58f13a881ed351198ffab4cf9953cf19d2ab3a (git) before 026bbaeeab9e04534ee58882b6447300629b42f6
3a58f13a881ed351198ffab4cf9953cf19d2ab3a (git) before 6a877ececd6daa002a9a0002cd0fbca6592a9244
2a6efabed754c9dcf27e6def71317b374f58a852 (git)
5.17.7 (semver) before 5.18
5.18
Any version before 5.18
6.6.130 (semver)
6.12.77 (semver)
6.18.17 (semver)
6.19.7 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/8babb271403378ba6836f6c8599c5313d0e2355d
git.kernel.org/...c/8519e6883a942e510f33a0e634e27bcc3a844a40
git.kernel.org/...c/6ce948fa54599f369ff7fe8b793a6aae4b0762b2
git.kernel.org/...c/026bbaeeab9e04534ee58882b6447300629b42f6
git.kernel.org/...c/6a877ececd6daa002a9a0002cd0fbca6592a9244