LiveActive security incident?Get immediate response
CVE Record

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

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---

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

CVE-2024-42148 is a Linux kernel driver bug in Broadcom bnx2x networking support. On some high-core systems or systems configured with many Ethernet queues, the driver can read or write outside a stats array. That can threaten host stability and kernel memory safety, but the provided sources do not show active exploitation.

Executive priority

Treat this as a targeted infrastructure patching item, not an internet-wide emergency. Prioritize servers with Broadcom bnx2x NICs, high core counts, or custom queue settings because the bug is kernel-level and may affect reliability or memory safety.

Technical view

The bnx2x driver allocated stats_query_entry query using FP_SB_MAX_E1x, leaving 19 entries after offsets. E2-capable NIC paths can use more queues, causing UBSAN array-index-out-of-bounds in bnx2x_stats.c. The kernel fix enlarges the array by using FP_SB_MAX_E2 so supported queue counts fit.

Likely exposure

Most relevant exposure is Linux hosts using Broadcom bnx2x-supported NICs, especially systems with 32 or more physical CPU cores or explicit num_queues values near driver limits. Systems not loading this driver are unlikely to be exposed.

Exploitation context

The bundle marks KEV as false and provides no cited evidence of exploitation in the wild. The known trigger is driver operation under specific queue/core-count conditions, with UBSAN warnings showing out-of-bounds access during network stats handling.

Researcher notes

Evidence supports a bounds error in bnx2x firmware stats request handling caused by E1x-sized allocation reused for E2 queue capacity. Sources do not provide CVSS, CWE mapping, exploitability analysis, or proof of remote triggerability, so severity confidence is limited.

Mitigation direction

  • Update affected Linux kernels to vendor builds containing the bnx2x stable fixes.
  • Review Debian or distribution advisories for packaged kernel availability.
  • Avoid unsupported high num_queues settings until patched.
  • Prioritize hosts using bnx2x hardware in production or virtualization infrastructure.
  • Check vendor guidance before applying any nonstandard workaround.

Validation and detection

  • Inventory hosts loading the bnx2x kernel module.
  • Identify systems with Broadcom bnx2x-supported NICs and high CPU core counts.
  • Check kernel package versions against distribution CVE advisories.
  • Review logs for UBSAN array-index-out-of-bounds messages in bnx2x_stats.c.
  • Confirm patched kernels include the referenced stable commits.
Prepared
Confidence
medium
Sources
11

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2024-42148 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
2ADP providers
10Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: partial

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CVECVE Program Container
CISA-ADPCISA ADP Vulnrichment
other:ssvc
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux50f0a562f8cc9ed9d9f7f7380434c3c8646172d5, 50f0a562f8cc9ed9d9f7f7380434c3c8646172d5, 50f0a562f8cc9ed9d9f7f7380434c3c8646172d5, 50f0a562f8cc9ed9d9f7f7380434c3c8646172d5, 50f0a562f8cc9ed9d9f7f7380434c3c8646172d5, 50f0a562f8cc9ed9d9f7f7380434c3c8646172d5, 50f0a562f8cc9ed9d9f7f7380434c3c8646172d5, 50f0a562f8cc9ed9d9f7f7380434c3c8646172d5unaffected
LinuxLinux3.3, 0, 4.19.318, 5.4.280, 5.10.222, 5.15.163, 6.1.98, 6.6.39, 6.9.9, 6.10affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.