CVE-2023-53731
netlink: fix potential deadlock in netlink_set_err()
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 ***
Produtos afetados
Linux · LinuxQuer saber se a sua infraestrutura está exposta a isto?
Falar com a TrueHacking →Referências
https://git.kernel.org/stable/c/1556ba034b95cfd4f75ea93c1a2679ae0444bba1https://git.kernel.org/stable/c/4b9adb8d4a62ff7608d4a7d4eb42036a88f30980https://git.kernel.org/stable/c/61ffe8b1ee084e5c82a4e4bbf9e7b68e0c06e464https://git.kernel.org/stable/c/8d61f926d42045961e6b65191c09e3678d86a9cfhttps://git.kernel.org/stable/c/8f6652ed2ad98fe6d13b903483d9257762ab2ec6https://git.kernel.org/stable/c/a641240b7e071c5538dc0e7894ece833fce459ddhttps://git.kernel.org/stable/c/c09e8e3f7fd432984bf5422302b093d2371dfc48https://git.kernel.org/stable/c/cde7b90e0539a3b11da377e463dfd2288a162dbfhttps://git.kernel.org/stable/c/eb8e27c8fa9397b4a7b181c48fa58157dbe9902e