CVE-2021-47363·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: nexthop: Fix division by zero while replacing a resilient group The resilient nexthop group torture tests in fib_nexthop.sh exposed a possible division by zero while replacing a resilient group [1]. The division by zero occurs when the data path sees a resilient nexthop group with zero buckets. The tests replace a resilient nexthop group in a loop while traffic is forwarded through it. The tests do not specify the number of buckets while performing the replacement, resulting in the kernel allocating a stub resilient table (i.e, 'struct nh_res_table') with zero buckets. This table should never be visible to the data path, but the old nexthop group (i.e., 'oldg') might still be used by the data path when the stub table is assigned to it. Fix this by only assigning the stub table to the old nexthop group after making sure the group is no longer used by the data path. Tested with fib_nexthops.sh: Tests passed: 222 Tests failed: 0 [1] divide error: 0000 [#1] PREEMPT SMP KASAN CPU: 0 PID: 1850 Comm: ping Not tainted 5.14.0-custom-10271-ga86eb53057fe #1107 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-4.fc34 04/01/2014 RIP: 0010:nexthop_select_path+0x2d2/0x1a80 [...] Call Trace: fib_select_multipath+0x79b/0x1530 fib_select_path+0x8fb/0x1c10 ip_route_output_key_hash_rcu+0x1198/0x2da0 ip_route_output_key_hash+0x190/0x340 ip_route_output_flow+0x21/0x120 raw_sendmsg+0x91d/0x2e10 inet_sendmsg+0x9e/0xe0 __sys_sendto+0x23d/0x360 __x64_sys_sendto+0xe1/0x1b0 do_syscall_64+0x35/0x80 entry_SYSCALL_64_after_hwframe+0x44/0xae
- Severity
- medium
- Software
- Kernel
- Fixed in
- 5.14.9
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — higher than 3% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Affected versions
From: 5.13
Until: 5.14.9
Fixed in: 5.14.9
How to fix this CVE
Update your Linux kernel to version 5.14.9 or later to fix a division-by-zero vulnerability in the resilient nexthop group handling. This issue occurs when the kernel attempts to replace a resilient nexthop group without specifying bucket parameters, creating an unstable routing table that can crash the system during packet forwarding. Applying this patch eliminates the race condition that exposes the stub table to the data path.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Run 'uname -r' to check your current kernel version; if it is between 5.13 and 5.14.8 (inclusive), your system is vulnerable
- Check if resilient nexthop groups are configured: 'ip nexthop show' or examine routing configuration in '/proc/net/route'
- Monitor kernel logs for divide-by-zero errors: 'dmesg | grep -i "divide error" | tail -20'
- Verify the fix: after patching, confirm 'uname -r' returns 5.14.9 or later, then reboot and re-run dmesg checks to confirm no errors appear
FAQ
What is CVE-2021-47363?
CVE-2021-47363 is a kernel vulnerability in the resilient nexthop group implementation that causes a division-by-zero crash when a nexthop group is replaced without specifying bucket parameters, allowing a stub routing table with zero buckets to become visible to the packet forwarding path.
Is CVE-2021-47363 being actively exploited?
No, this vulnerability is not currently listed on the CISA KEV catalog and there are no known public exploits. However, it can be triggered locally through routine nexthop group replacements during network reconfiguration.
What versions of Kernel are affected by CVE-2021-47363?
Linux kernel versions 5.13.0 through 5.14.8 are affected. The vulnerability was fixed in kernel 5.14.9 and later stable releases.
How do I check if my server is vulnerable to CVE-2021-47363?
Run 'uname -r' and compare the output to the affected range (5.13.x through 5.14.8). If your version falls within this range and resilient nexthop groups are in use, your system is vulnerable.
Does Defensia detect CVE-2021-47363?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2021-47363 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-2021-47363. Free for 1 server.
Get started free