CVE-2025-37911CWE-125

CVE-2025-37911

High · published May 20, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
13.9
In the wild
Unconfirmed
What it is

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

bnxt_en: Fix out-of-bound memcpy() during ethtool -w

When retrieving the FW coredump using ethtool, it can sometimes cause

memory corruption:

BUG: KFENCE: memory corruption in __bnxt_get_coredump+0x3ef/0x670 [bnxt_en]

Corrupted memory at 0x000000008f0f30e8 [ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ] (in kfence-#45):

__bnxt_get_coredump+0x3ef/0x670 [bnxt_en]

ethtool_get_dump_data+0xdc/0x1a0

__dev_ethtool+0xa1e/0x1af0

dev_ethtool+0xa8/0x170

dev_ioctl+0x1b5/0x580

sock_do_ioctl+0xab/0xf0

sock_ioctl+0x1ce/0x2e0

__x64_sys_ioctl+0x87/0xc0

do_syscall_64+0x5c/0xf0

entry_SYSCALL_64_after_hwframe+0x78/0x80

...

This happens when copying the coredump segment list in

bnxt_hwrm_dbg_dma_data() with the HWRM_DBG_COREDUMP_LIST FW command.

The info->dest_buf buffer is allocated based on the number of coredump

segments returned by the FW. The segment list is then DMA'ed by

the FW and the length of the DMA is returned by FW. The driver then

copies this DMA'ed segment list to info->dest_buf.

In some cases, this DMA length may exceed the info->dest_buf length

and cause the above BUG condition. Fix it by capping the copy

length to not exceed the length of info->dest_buf. The extra

DMA data contains no useful information.

This code path is shared for the HWRM_DBG_COREDUMP_LIST and the

HWRM_DBG_COREDUMP_RETRIEVE FW commands. The buffering is different

for these 2 FW commands. To simplify the logic, we need to move

the line to adjust the buffer length for HWRM_DBG_COREDUMP_RETRIEVE

up, so that the new check to cap the copy length will work for both

commands.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00237 · 13.9th percentile
Weakness
CWE-125 · Out-of-bounds Read
Published
2025-05-20T20:15Z
Affected products (18)
ProductVersionsFixed in
linux/linux_kernel≥ 4.19.95, < 4.204.20
linux/linux_kernel≥ 5.4.8, < 5.55.5
linux/linux_kernel≥ 5.5.1, < 5.15.1825.15.182
linux/linux_kernel≥ 5.16, < 6.1.1386.1.138
linux/linux_kernel≥ 6.2, < 6.6.906.6.90
linux/linux_kernel≥ 6.7, < 6.12.286.12.28
linux/linux_kernel≥ 6.13, < 6.14.66.14.6
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
debian/debian_linuxall versions—
References (7)
EPSS history
Timeline
  • 20 MAY 15:21Z
    bnxt_en: Fix out-of-bound memcpy() during ethtool -w
    cvelistv5