CVE-2023-53731
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
netlink: fix potential deadlock in netlink_set_err()
syzbot reported a possible deadlock in netlink_set_err() [1]
A similar issue was fixed in commit 1d482e666b8e ("netlink: disable IRQs for netlink_lock_table()") in netlink_lock_table()
This patch adds IRQ safety to netlink_set_err() and __netlink_diag_dump() which were not covered by cited commit.
[1]
WARNING: possible irq lock inversion dependency detected 6.4.0-rc6-syzkaller-00240-g4e9f0ec38852 #0 Not tainted
syz-executor.2/23011 just changed the state of lock: ffffffff8e1a7a58 (nl_table_lock){.+.?}-{2:2}, at: netlink_set_err+0x2e/0x3a0 net/netlink/af_netlink.c:1612 but this lock was taken by another, SOFTIRQ-safe lock in the past: (&local->queue_stop_reason_lock){..-.}-{2:2}
and interrupts could create inverse lock ordering between them.
other info that might help us debug this: Possible interrupt unsafe locking scenario:
CPU0 CPU1
---- ----
lock(nl_table_lock); local_irq_disable(); lock(&local->queue_stop_reason_lock); lock(nl_table_lock); <Interrupt> lock(&local->queue_stop_reason_lock);
*** DEADLOCK ***
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 82b2ea5f904b3826934df4a00f3b8806272185f6 < c09e8e3f7fd432984bf5422302b093d2371dfc48 | affected |
| Linux | Linux | 59fba11d649854134c75ad88c8adafa9304ac419 < 4b9adb8d4a62ff7608d4a7d4eb42036a88f30980 | affected |
| Linux | Linux | 21df0c2e7d195de4a3c650de9361b3037fa6c59a < 8f6652ed2ad98fe6d13b903483d9257762ab2ec6 | affected |
| Linux | Linux | 1d6d43d4805da9b3fa0f5841e8b1083c89868f35 < cde7b90e0539a3b11da377e463dfd2288a162dbf | affected |
| Linux | Linux | 1d482e666b8e74c7555dbdfbfb77205eeed3ff2d < a641240b7e071c5538dc0e7894ece833fce459dd | affected |
| Linux | Linux | 1d482e666b8e74c7555dbdfbfb77205eeed3ff2d < 61ffe8b1ee084e5c82a4e4bbf9e7b68e0c06e464 | affected |
| Linux | Linux | 1d482e666b8e74c7555dbdfbfb77205eeed3ff2d < eb8e27c8fa9397b4a7b181c48fa58157dbe9902e | affected |
| Linux | Linux | 1d482e666b8e74c7555dbdfbfb77205eeed3ff2d < 1556ba034b95cfd4f75ea93c1a2679ae0444bba1 | affected |
| Linux | Linux | 1d482e666b8e74c7555dbdfbfb77205eeed3ff2d < 8d61f926d42045961e6b65191c09e3678d86a9cf | affected |
| Linux | Linux | 5f155c4046200f067b1dc3140ea99ef56e4e0b74 | affected |
| Linux | Linux | a8e9111a8625dd11e70edd61f7a1ccd26c041442 | affected |
| Linux | Linux | 76cc8e04f38c2bbfcba07f62864a011f142bd40c | affected |
| Linux | Linux | 4.14.237 < 4.14.322 | affected |
| Linux | Linux | 4.19.195 < 4.19.291 | affected |
| Linux | Linux | 5.4.126 < 5.4.251 | affected |
| Linux | Linux | 5.10.44 < 5.10.188 | affected |
| Linux | Linux | 4.4.273 < 4.5 | affected |
| Linux | Linux | 4.9.273 < 4.10 | affected |
| Linux | Linux | 5.12.11 < 5.13 | affected |
| Linux | Linux | 5.13 | affected |
| Linux | Linux | 0 < 5.13 | unaffected |
| Linux | Linux | 4.14.322 <= 4.14.* | unaffected |
| Linux | Linux | 4.19.291 <= 4.19.* | unaffected |
| Linux | Linux | 5.4.251 <= 5.4.* | unaffected |
| Linux | Linux | 5.10.188 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.121 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.39 <= 6.1.* | unaffected |
| Linux | Linux | 6.3.13 <= 6.3.* | unaffected |
| Linux | Linux | 6.4.4 <= 6.4.* | unaffected |
| Linux | Linux | 6.5 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/c09e8e3f7fd432984bf5422302b093d2371dfc48
- https://git.kernel.org/stable/c/4b9adb8d4a62ff7608d4a7d4eb42036a88f30980
- https://git.kernel.org/stable/c/8f6652ed2ad98fe6d13b903483d9257762ab2ec6
- https://git.kernel.org/stable/c/cde7b90e0539a3b11da377e463dfd2288a162dbf
- https://git.kernel.org/stable/c/a641240b7e071c5538dc0e7894ece833fce459dd
- https://git.kernel.org/stable/c/61ffe8b1ee084e5c82a4e4bbf9e7b68e0c06e464
- https://git.kernel.org/stable/c/eb8e27c8fa9397b4a7b181c48fa58157dbe9902e
- https://git.kernel.org/stable/c/1556ba034b95cfd4f75ea93c1a2679ae0444bba1
- https://git.kernel.org/stable/c/8d61f926d42045961e6b65191c09e3678d86a9cf
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.