CVE-2025-37911 in Linux
Zusammenfassung
von VulDB • 31.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
bnxt_en: Behebung eines Out-of-Bounds memcpy() während ethtool -w
Bei der Abfrage des FW-Coredumps mit ethtool kann es gelegentlich zu einer Speicherkorruption kommen:
BUG: KFENCE: Speicherkorruption in __bnxt_get_coredump+0x3ef/0x670 [bnxt_en]
Korrupter Speicher bei 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
...
Dies tritt auf, wenn die Coredump-Segmentliste in bnxt_hwrm_dbg_dma_data() mit dem HWRM_DBG_COREDUMP_LIST-FW-Befehl kopiert wird. Der Puffer info->dest_buf wird basierend auf der Anzahl der vom FW zurückgegebenen Coredump-Segmente alloziert. Die Segmentliste wird dann vom FW per DMA übertragen, und die Länge des DMA-Vorgangs wird vom FW zurückgegeben. Der Treiber kopiert diese per DMA übertragene Segmentliste anschließend in info->dest_buf.
In einigen Fällen kann diese DMA-Länge die Länge von info->dest_buf überschreiten und die oben genannte BUG-Bedingung verursachen. Dies wird behoben, indem die Kopierlänge so begrenzt wird, dass sie die Länge von info->dest_buf nicht überschreitet. Die zusätzlichen DMA-Daten enthalten keine nützlichen Informationen.
Dieser Codepfad wird für die FW-Befehle HWRM_DBG_COREDUMP_LIST und HWRM_DBG_COREDUMP_RETRIEVE gemeinsam genutzt. Die Pufferung unterscheidet sich jedoch für diese beiden FW-Befehle. Um die Logik zu vereinfachen, muss die Zeile zur Anpassung der Pufferlänge für HWRM_DBG_COREDUMP_RETRIEVE nach oben verschoben werden, damit die neue Überprüfung zur Begrenzung der Kopierlänge für beide Befehle funktioniert.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.