CVE-2023-53134

Summary

In the Linux kernel, the following vulnerability has been resolved:

bnxt_en: Avoid order-5 memory allocation for TPA data

The driver needs to keep track of all the possible concurrent TPA (GRO/LRO) completions on the aggregation ring. On P5 chips, the maximum number of concurrent TPA is 256 and the amount of memory we allocate is order-5 on systems using 4K pages. Memory allocation failure has been reported:

NetworkManager: page allocation failure: order:5, mode:0x40dc0(GFP_KERNEL|__GFP_COMP|__GFP_ZERO), nodemask=(null),cpuset=/,mems_allowed=0-1 CPU: 15 PID: 2995 Comm: NetworkManager Kdump: loaded Not tainted 5.10.156 #1 Hardware name: Dell Inc. PowerEdge R660/0M1CC5, BIOS 0.2.25 08/12/2022 Call Trace: dump_stack+0x57/0x6e warn_alloc.cold.120+0x7b/0xdd ? _cond_resched+0x15/0x30 ? __alloc_pages_direct_compact+0x15f/0x170 __alloc_pages_slowpath.constprop.108+0xc58/0xc70 __alloc_pages_nodemask+0x2d0/0x300 kmalloc_order+0x24/0xe0 kmalloc_order_trace+0x19/0x80 bnxt_alloc_mem+0x1150/0x15c0 [bnxt_en] ? bnxt_get_func_stat_ctxs+0x13/0x60 [bnxt_en] __bnxt_open_nic+0x12e/0x780 [bnxt_en] bnxt_open+0x10b/0x240 [bnxt_en] __dev_open+0xe9/0x180 __dev_change_flags+0x1af/0x220 dev_change_flags+0x21/0x60 do_setlink+0x35c/0x1100

Instead of allocating this big chunk of memory and dividing it up for the concurrent TPA instances, allocate each small chunk separately for each TPA instance. This will reduce it to order-0 allocations.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux79632e9ba38671215fb193346ef6fb8db582744d < 16f3aae1aa2dd89bc8d073a67f190af580386ae9affected
LinuxLinux79632e9ba38671215fb193346ef6fb8db582744d < d16701a385b54f44bf41ff1d7485e7a11080deb3affected
LinuxLinux79632e9ba38671215fb193346ef6fb8db582744d < 20fd0607acbf9770db9b99e3418dd75614f80b6caffected
LinuxLinux79632e9ba38671215fb193346ef6fb8db582744d < fcae40e65802547def39b4deaa2ae38a29864d81affected
LinuxLinux79632e9ba38671215fb193346ef6fb8db582744d < ad529d1fae1565d38f929479d4ea8aea90054bd2affected
LinuxLinux79632e9ba38671215fb193346ef6fb8db582744d < accd7e23693aaaa9aa0d3e9eca0ae77d1be80ab3affected
LinuxLinux5.4affected
LinuxLinux0 < 5.4unaffected
LinuxLinux5.4.237 <= 5.4.*unaffected
LinuxLinux5.10.175 <= 5.10.*unaffected
LinuxLinux5.15.103 <= 5.15.*unaffected
LinuxLinux6.1.20 <= 6.1.*unaffected
LinuxLinux6.2.7 <= 6.2.*unaffected
LinuxLinux6.3 <= *unaffected

Weaknesses

References