CVE-2026-23041: bnxt_en: Fix NULL pointer crash in bnxt_ptp_enable during error cleanup
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Fix NULL pointer crash in bnxt_ptp_enable during error cleanup
When bnxt_init_one() fails during initialization (e.g.,
bnxt_init_int_mode returns -ENODEV), the error path calls
bnxt_free_hwrm_resources() which destroys the DMA pool and sets
bp->hwrm_dma_pool to NULL. Subsequently, bnxt_ptp_clear() is called,
which invokes ptp_clock_unregister().
Since commit a60fc3294a37 ("ptp: rework ptp_clock_unregister() to
disable events"), ptp_clock_unregister() now calls
ptp_disable_all_events(), which in turn invokes the driver's .enable()
callback (bnxt_ptp_enable()) to disable PTP events before completing the
unregistration.
bnxt_ptp_enable() attempts to send HWRM commands via bnxt_ptp_cfg_pin()
and bnxt_ptp_cfg_event(), both of which call hwrm_req_init(). This
function tries to allocate from bp->hwrm_dma_pool, causing a NULL
pointer dereference:
bnxt_en 0000:01:00.0 (unnamed net_device) (uninitialized): bnxt_init_int_mode err: ffffffed
KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f]
Call Trace:
__hwrm_req_init (drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c:72)
bnxt_ptp_enable (drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:323 drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:517)
ptp_disable_all_events (drivers/ptp/ptp_chardev.c:66)
ptp_clock_unregister (drivers/ptp/ptp_clock.c:518)
bnxt_ptp_clear (drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:1134)
bnxt_init_one (drivers/net/ethernet/broadcom/bnxt/bnxt.c:16889)
Lines are against commit f8f9c1f4d0c7 ("Linux 6.19-rc3")
Fix this by clearing and unregistering ptp (bnxt_ptp_clear()) before
freeing HWRM resources.
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel driver crash bug in bnxt_en error cleanup. If initialization fails, cleanup can free required resources before PTP unregister logic calls back into the driver, causing a NULL pointer dereference. Sources describe a crash, not data theft or privilege escalation.
Executive priority
Handle through normal kernel maintenance unless affected bnxt_en servers are business-critical or crash-sensitive. There is no cited active exploitation, but a kernel crash can still disrupt network-dependent workloads.
Technical view
The fault occurs when bnxt_init_one() fails, bnxt_free_hwrm_resources() nulls bp->hwrm_dma_pool, then bnxt_ptp_clear() triggers ptp_clock_unregister(). Since a60fc3294a37, unregister disables events through bnxt_ptp_enable(), which can call hwrm_req_init() and dereference the NULL DMA pool.
Likely exposure
Exposure appears limited to Linux systems using the Broadcom bnxt_en network driver with affected kernel versions or commits. The source bundle names Linux 6.18, 6.18.6, 6.19, and commit a60fc3294a37 context; validate against vendor kernel backports.
Exploitation context
No source in the bundle reports active exploitation, and CISA KEV status is false. The described trigger is an initialization failure path, such as bnxt_init_int_mode returning -ENODEV, followed by cleanup ordering that crashes the kernel.
Researcher notes
The fix is cleanup ordering: call bnxt_ptp_clear() before freeing HWRM resources. Evidence supports denial-of-service style impact through a NULL pointer dereference; it does not support remote exploitability, data exposure, or privilege escalation claims.
Mitigation direction
Update to a Linux kernel containing the referenced stable fixes.
Check distribution vendor advisories for backported bnxt_en fixes.
Prioritize systems using bnxt_en with PTP functionality enabled or present.
Treat unsupported custom kernels as needing manual patch review.
Validation and detection
Inventory hosts loading the bnxt_en kernel module.
Record kernel versions and distribution backport status.
Confirm whether referenced stable commits are present in kernel source packages.
Review crash logs for bnxt_ptp_enable or __hwrm_req_init NULL dereferences.
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-2026-23041 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
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
0ADP providers
3Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Feb 4, 2026, 16:00 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.