CVE-2021-47363
Severity CVSS v4.0:
Pending analysis
Type:
CWE-369
Divide By Zero
Publication date:
21/05/2024
Last modified:
26/12/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
nexthop: Fix division by zero while replacing a resilient group<br />
<br />
The resilient nexthop group torture tests in fib_nexthop.sh exposed a<br />
possible division by zero while replacing a resilient group [1]. The<br />
division by zero occurs when the data path sees a resilient nexthop<br />
group with zero buckets.<br />
<br />
The tests replace a resilient nexthop group in a loop while traffic is<br />
forwarded through it. The tests do not specify the number of buckets<br />
while performing the replacement, resulting in the kernel allocating a<br />
stub resilient table (i.e, &#39;struct nh_res_table&#39;) with zero buckets.<br />
<br />
This table should never be visible to the data path, but the old nexthop<br />
group (i.e., &#39;oldg&#39;) might still be used by the data path when the stub<br />
table is assigned to it.<br />
<br />
Fix this by only assigning the stub table to the old nexthop group after<br />
making sure the group is no longer used by the data path.<br />
<br />
Tested with fib_nexthops.sh:<br />
<br />
Tests passed: 222<br />
Tests failed: 0<br />
<br />
[1]<br />
divide error: 0000 [#1] PREEMPT SMP KASAN<br />
CPU: 0 PID: 1850 Comm: ping Not tainted 5.14.0-custom-10271-ga86eb53057fe #1107<br />
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-4.fc34 04/01/2014<br />
RIP: 0010:nexthop_select_path+0x2d2/0x1a80<br />
[...]<br />
Call Trace:<br />
fib_select_multipath+0x79b/0x1530<br />
fib_select_path+0x8fb/0x1c10<br />
ip_route_output_key_hash_rcu+0x1198/0x2da0<br />
ip_route_output_key_hash+0x190/0x340<br />
ip_route_output_flow+0x21/0x120<br />
raw_sendmsg+0x91d/0x2e10<br />
inet_sendmsg+0x9e/0xe0<br />
__sys_sendto+0x23d/0x360<br />
__x64_sys_sendto+0xe1/0x1b0<br />
do_syscall_64+0x35/0x80<br />
entry_SYSCALL_64_after_hwframe+0x44/0xae
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.13 (including) | 5.14.9 (excluding) |
| cpe:2.3:o:linux:linux_kernel:5.15:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.15:rc2:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



