CVE-2022-48719·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: net, neigh: Do not trigger immediate probes on NUD_FAILED from neigh_managed_work syzkaller was able to trigger a deadlock for NTF_MANAGED entries [0]: kworker/0:16/14617 is trying to acquire lock: ffffffff8d4dd370 (&tbl->lock){++-.}-{2:2}, at: ___neigh_create+0x9e1/0x2990 net/core/neighbour.c:652 [...] but task is already holding lock: ffffffff8d4dd370 (&tbl->lock){++-.}-{2:2}, at: neigh_managed_work+0x35/0x250 net/core/neighbour.c:1572 The neighbor entry turned to NUD_FAILED state, where __neigh_event_send() triggered an immediate probe as per commit cd28ca0a3dd1 ("neigh: reduce arp latency") via neigh_probe() given table lock was held. One option to fix this situation is to defer the neigh_probe() back to the neigh_timer_handler() similarly as pre cd28ca0a3dd1. For the case of NTF_MANAGED, this deferral is acceptable given this only happens on actual failure state and regular / expected state is NUD_VALID with the entry already present. The fix adds a parameter to __neigh_event_send() in order to communicate whether immediate probe is allowed or disallowed. Existing call-sites of neigh_event_send() default as-is to immediate probe. However, the neigh_managed_work() disables it via use of neigh_event_send_probe(). [0] <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_deadlock_bug kernel/locking/lockdep.c:2956 [inline] check_deadlock kernel/locking/lockdep.c:2999 [inline] validate_chain kernel/locking/lockdep.c:3788 [inline] __lock_acquire.cold+0x149/0x3ab kernel/locking/lockdep.c:5027 lock_acquire kernel/locking/lockdep.c:5639 [inline] lock_acquire+0x1ab/0x510 kernel/locking/lockdep.c:5604 __raw_write_lock_bh include/linux/rwlock_api_smp.h:202 [inline] _raw_write_lock_bh+0x2f/0x40 kernel/locking/spinlock.c:334 ___neigh_create+0x9e1/0x2990 net/core/neighbour.c:652 ip6_finish_output2+0x1070/0x14f0 net/ipv6/ip6_output.c:123 __ip6_finish_output net/ipv6/ip6_output.c:191 [inline] __ip6_finish_output+0x61e/0xe90 net/ipv6/ip6_output.c:170 ip6_finish_output+0x32/0x200 net/ipv6/ip6_output.c:201 NF_HOOK_COND include/linux/netfilter.h:296 [inline] ip6_output+0x1e4/0x530 net/ipv6/ip6_output.c:224 dst_output include/net/dst.h:451 [inline] NF_HOOK include/linux/netfilter.h:307 [inline] ndisc_send_skb+0xa99/0x17f0 net/ipv6/ndisc.c:508 ndisc_send_ns+0x3a9/0x840 net/ipv6/ndisc.c:650 ndisc_solicit+0x2cd/0x4f0 net/ipv6/ndisc.c:742 neigh_probe+0xc2/0x110 net/core/neighbour.c:1040 __neigh_event_send+0x37d/0x1570 net/core/neighbour.c:1201 neigh_event_send include/net/neighbour.h:470 [inline] neigh_managed_work+0x162/0x250 net/core/neighbour.c:1574 process_one_work+0x9ac/0x1650 kernel/workqueue.c:2307 worker_thread+0x657/0x1110 kernel/workqueue.c:2454 kthread+0x2e9/0x3a0 kernel/kthread.c:377 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 </TASK>
- Severity
- medium
- Software
- Kernel
- Fixed in
- 5.16.8
- Published
- 2024-06-20
Affected versions
From: 5.16
Until: 5.16.8
Fixed in: 5.16.8
How to fix this CVE
Update your Linux kernel to version 5.16.8 or later to resolve a deadlock condition in the neighbor discovery subsystem. This vulnerability affects systems running kernel versions 5.16 through 5.16.7 and can cause system hangs when managed neighbor table entries transition to a failed state. Apply the kernel update and reboot your system to ensure the fix is active.
sudo dnf update kernel kernel-devel && sudo rebootDefensia detects this vulnerability
How to check if you are affected
- Check your current kernel version by running: uname -r
- Determine if you are running a vulnerable version (5.16.0 through 5.16.7) by comparing output against the fixed version 5.16.8
- Review kernel logs for deadlock warnings: sudo dmesg | grep -i 'deadlock\|hung_task\|neigh_managed_work'
- After applying updates, verify the new kernel version with: uname -r and confirm it is 5.16.8 or later
FAQ
What is CVE-2022-48719?
This is a kernel deadlock vulnerability in the neighbor table management code that occurs when NTF_MANAGED neighbor entries fail. The flaw causes immediate probe attempts to be triggered while holding internal locks, creating a deadlock condition that can freeze system operations.
Is CVE-2022-48719 being actively exploited?
No, this vulnerability is not listed on the CISA KEV catalog and no public exploits are available. However, it can be triggered locally through specific network conditions involving managed neighbor entries.
What versions of Kernel are affected by CVE-2022-48719?
Linux kernel versions 5.16.0 through 5.16.7 are vulnerable. Version 5.16.8 and later contain the fix.
How do I check if my server is vulnerable to CVE-2022-48719?
Run 'uname -r' and check if the output shows a kernel version in the 5.16.0-5.16.7 range. If so, your system is vulnerable and requires an immediate kernel update.
Does Defensia detect CVE-2022-48719?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2022-48719 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2022-48719. Free for 1 server.
Get started free