Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-42148— bnx2x: Fix multiple UBSAN array-index-out-of-bounds

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞,该漏洞源于bnx2x模块中在使用具有32个以上物理CPU核心的系统或定义的以太网队列数量大于或等于FP_SB_MAX_E1x时,发生UBSAN数组索引越界。

AI Predicted 5.5 Difficulty: Easy EPSS 0.26% · P16

Possible ATT&CK Techniques 1 AI

T1498 · Network Denial of Service

Affected Version Matrix 18

VendorProduct Version RangeStatus
Linux Linux 50f0a562f8cc9ed9d9f7f7380434c3c8646172d5< cfb04472ce33bee2579caf4dc9f4242522f6e26e affected
50f0a562f8cc9ed9d9f7f7380434c3c8646172d5< cbe53087026ad929cd3950508397e8892a6a2a0f affected
50f0a562f8cc9ed9d9f7f7380434c3c8646172d5< 8b17cec33892a66bbd71f8d9a70a45e2072ae84f affected
50f0a562f8cc9ed9d9f7f7380434c3c8646172d5< 0edae06b4c227bcfaf3ce21208d49191e1009d3b affected
50f0a562f8cc9ed9d9f7f7380434c3c8646172d5< 9504a1550686f53b0bab4cab31d435383b1ee2ce affected
50f0a562f8cc9ed9d9f7f7380434c3c8646172d5< f1313ea92f82451923e28ab45a4aaa0e70e80b98 affected
50f0a562f8cc9ed9d9f7f7380434c3c8646172d5< b9ea38e767459111a511ed4fb74abc37db95a59d affected
50f0a562f8cc9ed9d9f7f7380434c3c8646172d5< 134061163ee5ca4759de5c24ca3bd71608891ba7 affected
… +10 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-42148

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
bnx2x: Fix multiple UBSAN array-index-out-of-bounds
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: bnx2x: Fix multiple UBSAN array-index-out-of-bounds Fix UBSAN warnings that occur when using a system with 32 physical cpu cores or more, or when the user defines a number of Ethernet queues greater than or equal to FP_SB_MAX_E1x using the num_queues module parameter. Currently there is a read/write out of bounds that occurs on the array "struct stats_query_entry query" present inside the "bnx2x_fw_stats_req" struct in "drivers/net/ethernet/broadcom/bnx2x/bnx2x.h". Looking at the definition of the "struct stats_query_entry query" array: struct stats_query_entry query[FP_SB_MAX_E1x+ BNX2X_FIRST_QUEUE_QUERY_IDX]; FP_SB_MAX_E1x is defined as the maximum number of fast path interrupts and has a value of 16, while BNX2X_FIRST_QUEUE_QUERY_IDX has a value of 3 meaning the array has a total size of 19. Since accesses to "struct stats_query_entry query" are offset-ted by BNX2X_FIRST_QUEUE_QUERY_IDX, that means that the total number of Ethernet queues should not exceed FP_SB_MAX_E1x (16). However one of these queues is reserved for FCOE and thus the number of Ethernet queues should be set to [FP_SB_MAX_E1x -1] (15) if FCOE is enabled or [FP_SB_MAX_E1x] (16) if it is not. This is also described in a comment in the source code in drivers/net/ethernet/broadcom/bnx2x/bnx2x.h just above the Macro definition of FP_SB_MAX_E1x. Below is the part of this explanation that it important for this patch /* * The total number of L2 queues, MSIX vectors and HW contexts (CIDs) is * control by the number of fast-path status blocks supported by the * device (HW/FW). Each fast-path status block (FP-SB) aka non-default * status block represents an independent interrupts context that can * serve a regular L2 networking queue. However special L2 queues such * as the FCoE queue do not require a FP-SB and other components like * the CNIC may consume FP-SB reducing the number of possible L2 queues * * If the maximum number of FP-SB available is X then: * a. If CNIC is supported it consumes 1 FP-SB thus the max number of * regular L2 queues is Y=X-1 * b. In MF mode the actual number of L2 queues is Y= (X-1/MF_factor) * c. If the FCoE L2 queue is supported the actual number of L2 queues * is Y+1 * d. The number of irqs (MSIX vectors) is either Y+1 (one extra for * slow-path interrupts) or Y+2 if CNIC is supported (one additional * FP interrupt context for the CNIC). * e. The number of HW context (CID count) is always X or X+1 if FCoE * L2 queue is supported. The cid for the FCoE L2 queue is always X. */ However this driver also supports NICs that use the E2 controller which can handle more queues due to having more FP-SB represented by FP_SB_MAX_E2. Looking at the commits when the E2 support was added, it was originally using the E1x parameters: commit f2e0899f0f27 ("bnx2x: Add 57712 support"). Back then FP_SB_MAX_E2 was set to 16 the same as E1x. However the driver was later updated to take full advantage of the E2 instead of having it be limited to the capabilities of the E1x. But as far as we can tell, the array "stats_query_entry query" was still limited to using the FP-SB available to the E1x cards as part of an oversignt when the driver was updated to take full advantage of the E2, and now with the driver being aware of the greater queue size supported by E2 NICs, it causes the UBSAN warnings seen in the stack traces below. This patch increases the size of the "stats_query_entry query" array by replacing FP_SB_MAX_E1x with FP_SB_MAX_E2 to be large enough to handle both types of NICs. Stack traces: UBSAN: array-index-out-of-bounds in drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c:1529:11 index 20 is out of range for type 'stats_query_entry [19]' CPU: 12 PID: 858 Comm: systemd-network Not tainted 6.9.0-060900rc7-generic #202405052133 Hardware name: HP ProLiant DL360 Gen9/ProLiant DL360 ---truncated---
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞,该漏洞源于bnx2x模块中在使用具有32个以上物理CPU核心的系统或定义的以太网队列数量大于或等于FP_SB_MAX_E1x时,发生UBSAN数组索引越界。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 50f0a562f8cc9ed9d9f7f7380434c3c8646172d5 ~ cfb04472ce33bee2579caf4dc9f4242522f6e26e -
Linux Linux 3.3 -

II. Public POCs for CVE-2024-42148

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-42148

请登录查看更多情报信息。

Other References for CVE-2024-42148 (8)

Same Patch Batch · Linux · 2024-07-30 · 70 CVEs total

CVE-2024-42108 9.8 CRITICAL net: rswitch: Avoid use-after-free in rswitch_poll()
CVE-2024-42225 8.3 HIGH wifi: mt76: replace skb_put with skb_put_zero
CVE-2024-42120 7.8 HIGH drm/amd/display: Check pipe offset before setting vblank
CVE-2024-42115 7.8 HIGH jffs2: Fix potential illegal address access in jffs2_free_inode
CVE-2024-42112 7.8 HIGH net: txgbe: free isb resources at the right time
CVE-2024-42111 7.8 HIGH btrfs: always do the basic checks for btrfs_qgroup_inherit structure
CVE-2024-42109 7.8 HIGH netfilter: nf_tables: unconditionally flush pending work before notifier
CVE-2024-42105 7.8 HIGH nilfs2: fix inode number range checks
CVE-2024-42104 7.8 HIGH nilfs2: add missing check for inode numbers on directory entries
CVE-2024-42103 7.8 HIGH btrfs: fix adding block group to a reclaim list and the unused list during reclaim
CVE-2024-42117 7.8 HIGH drm/amd/display: ASSERT when failing to find index by plane/stream id
CVE-2024-42162 7.8 HIGH gve: Account for stopped queues when reading NIC stats
CVE-2024-42099 7.8 HIGH s390/dasd: Fix invalid dereferencing of indirect CCW data pointer
CVE-2024-42132 7.6 HIGH bluetooth/hci: disallow setting handle bigger than HCI_CONN_HANDLE_MAX
CVE-2024-42133 7.6 HIGH Bluetooth: Ignore too large handle values in BIG
CVE-2024-42152 7.5 HIGH nvmet: fix a possible leak when destroy a ctrl during qp establishment
CVE-2024-42110 7.5 HIGH net: ntb_netdev: Move ntb_netdev_rx_handler() to call netif_rx() from __netif_rx()
CVE-2024-42145 7.5 HIGH IB/core: Implement a limit on UMAD receive List
CVE-2024-42123 7.0 HIGH drm/amdgpu: fix double free err_addr pointer warnings
CVE-2024-42224 7.0 HIGH net: dsa: mv88e6xxx: Correct check for empty list

Showing top 20 of 70 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-42148

No comments yet


Leave a comment