In the Linux kernel, the following vulnerability has been resolved:
qed: Don't collect too many protection override GRC elements
In the protection override dump path, the firmware can return far too many GRC elements, resulting in attempting to write past the end of the previously-kmalloc'ed dump buffer.
This will result in a kernel panic with reason:
BUG: unable to handle kernel paging request at ADDRESS
where "ADDRESS" is just past the end of the protection override dump buffer. The start address of the buffer is: phwfn->cdev->dbgfeatures[DBGFEATUREPROTECTIONOVERRIDE].dumpbuf and the size of the buffer is buf_size in the same data structure.
The panic can be arrived at from either the qede Ethernet driver path:
[exception RIP: qed_grc_dump_addr_range+0x108]
qedprotectionoverridedump at ffffffffc02662ed [qed] qeddbgprotectionoverridedump at ffffffffc0267792 [qed] qeddbgfeature at ffffffffc026aa8f [qed] qeddbgalldata at ffffffffc026b211 [qed] qedfwfatalreporterdump at ffffffffc027298a [qed] devlinkhealthdodump at ffffffff82497f61 devlinkhealthreport at ffffffff8249cf29 qedreportfatalerror at ffffffffc0272baf [qed] qedesptask at ffffffffc045ed32 [qede] processonework at ffffffff81d19783
or the qedf storage driver path:
[exception RIP: qed_grc_dump_addr_range+0x108]
qedprotectionoverridedump at ffffffffc068b2ed [qed] qeddbgprotectionoverridedump at ffffffffc068c792 [qed] qeddbgfeature at ffffffffc068fa8f [qed] qeddbgalldata at ffffffffc0690211 [qed] qedfwfatalreporterdump at ffffffffc069798a [qed] devlinkhealthdodump at ffffffff8aa95e51 devlinkhealthreport at ffffffff8aa9ae19 qedreportfatalerror at ffffffffc0697baf [qed] qedhwerrnotify at ffffffffc06d32d7 [qed] qedspqpost at ffffffffc06b1011 [qed] qedfcoedestroyconn at ffffffffc06b2e91 [qed] qedfcleanupfcport at ffffffffc05e7597 [qedf] qedfrporteventhandler at ffffffffc05e7bf7 [qedf] fcrportwork at ffffffffc02da715 [libfc] processone_work at ffffffff8a319663
Resolve this by clamping the firmware's return value to the maximum number of legal elements the firmware should return.
[
{
"id": "CVE-2025-39949-06c803c1",
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56c0a2a9ddc2f5b5078c5fb0f81ab76bbc3d4c37",
"digest": {
"line_hashes": [
"247470095168525288197846528016208228773",
"180303473639166291023232008682268674613",
"5488681493226744914921854980417587331",
"69213389355238958912447487480646550879",
"101583220414234199312660482584292611654",
"252924127502585244808101238455465503036"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-121bbedf",
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@660b2a8f5a306a28c7efc1b4990ecc4912a68f87",
"digest": {
"line_hashes": [
"247470095168525288197846528016208228773",
"180303473639166291023232008682268674613",
"5488681493226744914921854980417587331",
"69213389355238958912447487480646550879",
"101583220414234199312660482584292611654",
"252924127502585244808101238455465503036"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-163527f5",
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c",
"function": "qed_protection_override_dump"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e0e24571a7b2f8c8f06e25d3417253ebbdbc8d5c",
"digest": {
"length": 926.0,
"function_hash": "287556538310912737002756126895143200380"
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-5496dad1",
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c",
"function": "qed_protection_override_dump"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56c0a2a9ddc2f5b5078c5fb0f81ab76bbc3d4c37",
"digest": {
"length": 926.0,
"function_hash": "287556538310912737002756126895143200380"
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-5b40a491",
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea53e6a47e148b490b1c652fc65d2de5a086df76",
"digest": {
"line_hashes": [
"247470095168525288197846528016208228773",
"180303473639166291023232008682268674613",
"5488681493226744914921854980417587331",
"69213389355238958912447487480646550879",
"101583220414234199312660482584292611654",
"252924127502585244808101238455465503036"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-6d60cb19",
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@70affe82e38fd3dc76b9c68b5a1989f11e7fa0f3",
"digest": {
"line_hashes": [
"247470095168525288197846528016208228773",
"180303473639166291023232008682268674613",
"5488681493226744914921854980417587331",
"69213389355238958912447487480646550879",
"101583220414234199312660482584292611654",
"252924127502585244808101238455465503036"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-74030c19",
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c",
"function": "qed_protection_override_dump"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@660b2a8f5a306a28c7efc1b4990ecc4912a68f87",
"digest": {
"length": 926.0,
"function_hash": "287556538310912737002756126895143200380"
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-9c95102f",
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e0e24571a7b2f8c8f06e25d3417253ebbdbc8d5c",
"digest": {
"line_hashes": [
"247470095168525288197846528016208228773",
"180303473639166291023232008682268674613",
"5488681493226744914921854980417587331",
"69213389355238958912447487480646550879",
"101583220414234199312660482584292611654",
"252924127502585244808101238455465503036"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-9d1b48ce",
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c",
"function": "qed_protection_override_dump"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@70affe82e38fd3dc76b9c68b5a1989f11e7fa0f3",
"digest": {
"length": 926.0,
"function_hash": "287556538310912737002756126895143200380"
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-ab94226b",
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c",
"function": "qed_protection_override_dump"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea53e6a47e148b490b1c652fc65d2de5a086df76",
"digest": {
"length": 926.0,
"function_hash": "287556538310912737002756126895143200380"
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-c5b31e3a",
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c",
"function": "qed_protection_override_dump"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8141910869596b7a3a5d9b46107da2191d523f82",
"digest": {
"length": 926.0,
"function_hash": "287556538310912737002756126895143200380"
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-cf4e8ba4",
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8141910869596b7a3a5d9b46107da2191d523f82",
"digest": {
"line_hashes": [
"247470095168525288197846528016208228773",
"180303473639166291023232008682268674613",
"5488681493226744914921854980417587331",
"69213389355238958912447487480646550879",
"101583220414234199312660482584292611654",
"252924127502585244808101238455465503036"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-d1e1be99",
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c",
"function": "qed_protection_override_dump"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25672c620421fa2105703a94a29a03487245e6d6",
"digest": {
"length": 926.0,
"function_hash": "287556538310912737002756126895143200380"
},
"signature_version": "v1"
},
{
"id": "CVE-2025-39949-e3096f58",
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/qlogic/qed/qed_debug.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25672c620421fa2105703a94a29a03487245e6d6",
"digest": {
"line_hashes": [
"247470095168525288197846528016208228773",
"180303473639166291023232008682268674613",
"5488681493226744914921854980417587331",
"69213389355238958912447487480646550879",
"101583220414234199312660482584292611654",
"252924127502585244808101238455465503036"
],
"threshold": 0.9
},
"signature_version": "v1"
}
]