In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Fix memory corruption when FW resources change during ifdown
bnxtsetdfltrings() assumes that it is always called before any TC has been created. So it doesn't take bp->numtc 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 bnxthwrmifchange() that will cause the driver to reinitialize and call bnxtcancelreservations(). This will lead to bnxtinitdfltringmode() calling bnxtsetdfltrings() and bp->numtc may be greater than 1. This will cause bp->txring[] to be sized too small and cause memory corruption in bnxtalloccp_rings().
Fix it by properly scaling the TX rings by bp->numtc in the code paths mentioned above. Add 2 helper functions to determine bp->txnrrings and bp->txnrringsper_tc.
[
{
"target": {
"function": "bnxt_set_dflt_rings",
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-26963204",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2747328ba2714f1a7454208dbbc1dc0631990b4a",
"digest": {
"function_hash": "294605896331105177936880505650054940499",
"length": 1516.0
}
},
{
"target": {
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-35a830ba",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9ab6a9950f152e094395d2e3967f889857daa185",
"digest": {
"threshold": 0.9,
"line_hashes": [
"98202826245097191022744952541617002658",
"207203204086847726759084268396716226644",
"259466131743189472239281169587319825381",
"180516822529054235679462146402938767968",
"111676883770049659497047583300907788618",
"256397189222709966547039711977592185695",
"158788416628224177098085614845476365142",
"82714095992963265582172883436489567956",
"77301985254248348094944868120072604065",
"53291804101683944515237346778115353003",
"131579903586256553454587388119854689294",
"174760114821803522723490172042054046191",
"95994426674726879730787273269797540637",
"86013103312348621264601407099948757506",
"66709215481914728482291752517951294988",
"312982345382153047548753806951705108380",
"20990105369883018412983685617356786795",
"197379810814337941193021308747272773232",
"2046225440962584456816210624093456511",
"254610340467440624942218130111861032741",
"336209692713659266689579145306530604133",
"99047161069699143215396671670961543337",
"20445574900338687622033226120377336939"
]
}
},
{
"target": {
"function": "bnxt_init_dflt_ring_mode",
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-793b5ba3",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9ab6a9950f152e094395d2e3967f889857daa185",
"digest": {
"function_hash": "210304721416872425462244574782347477318",
"length": 607.0
}
},
{
"target": {
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-7e936f97",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2747328ba2714f1a7454208dbbc1dc0631990b4a",
"digest": {
"threshold": 0.9,
"line_hashes": [
"98202826245097191022744952541617002658",
"207203204086847726759084268396716226644",
"259466131743189472239281169587319825381",
"180516822529054235679462146402938767968",
"111676883770049659497047583300907788618",
"256397189222709966547039711977592185695",
"158788416628224177098085614845476365142",
"82714095992963265582172883436489567956",
"77301985254248348094944868120072604065",
"53291804101683944515237346778115353003",
"131579903586256553454587388119854689294",
"174760114821803522723490172042054046191",
"95994426674726879730787273269797540637",
"86013103312348621264601407099948757506",
"66709215481914728482291752517951294988",
"312982345382153047548753806951705108380",
"20990105369883018412983685617356786795",
"197379810814337941193021308747272773232",
"2046225440962584456816210624093456511",
"254610340467440624942218130111861032741",
"336209692713659266689579145306530604133",
"99047161069699143215396671670961543337",
"20445574900338687622033226120377336939"
]
}
},
{
"target": {
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-86c13703",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d00e98977ef519280b075d783653e2c492fffbb6",
"digest": {
"threshold": 0.9,
"line_hashes": [
"98202826245097191022744952541617002658",
"207203204086847726759084268396716226644",
"259466131743189472239281169587319825381",
"180516822529054235679462146402938767968",
"111676883770049659497047583300907788618",
"256397189222709966547039711977592185695",
"158788416628224177098085614845476365142",
"82714095992963265582172883436489567956",
"77301985254248348094944868120072604065",
"53291804101683944515237346778115353003",
"131579903586256553454587388119854689294",
"174760114821803522723490172042054046191",
"95994426674726879730787273269797540637",
"86013103312348621264601407099948757506",
"66709215481914728482291752517951294988",
"312982345382153047548753806951705108380",
"20990105369883018412983685617356786795",
"197379810814337941193021308747272773232",
"2046225440962584456816210624093456511",
"254610340467440624942218130111861032741",
"336209692713659266689579145306530604133",
"99047161069699143215396671670961543337",
"20445574900338687622033226120377336939"
]
}
},
{
"target": {
"function": "bnxt_set_dflt_rings",
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-8ada01de",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d00e98977ef519280b075d783653e2c492fffbb6",
"digest": {
"function_hash": "294605896331105177936880505650054940499",
"length": 1516.0
}
},
{
"target": {
"function": "bnxt_trim_dflt_sh_rings",
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-aae6f07e",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2747328ba2714f1a7454208dbbc1dc0631990b4a",
"digest": {
"function_hash": "42819711699868774137218282257939076722",
"length": 290.0
}
},
{
"target": {
"function": "bnxt_init_dflt_ring_mode",
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-ba56c444",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d00e98977ef519280b075d783653e2c492fffbb6",
"digest": {
"function_hash": "210304721416872425462244574782347477318",
"length": 607.0
}
},
{
"target": {
"function": "bnxt_init_dflt_ring_mode",
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-c165d5c5",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2747328ba2714f1a7454208dbbc1dc0631990b4a",
"digest": {
"function_hash": "210304721416872425462244574782347477318",
"length": 607.0
}
},
{
"target": {
"function": "bnxt_trim_dflt_sh_rings",
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-c631306d",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9ab6a9950f152e094395d2e3967f889857daa185",
"digest": {
"function_hash": "42819711699868774137218282257939076722",
"length": 290.0
}
},
{
"target": {
"function": "bnxt_trim_dflt_sh_rings",
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-dc5fe01f",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d00e98977ef519280b075d783653e2c492fffbb6",
"digest": {
"function_hash": "42819711699868774137218282257939076722",
"length": 290.0
}
},
{
"target": {
"function": "bnxt_set_dflt_rings",
"file": "drivers/net/ethernet/broadcom/bnxt/bnxt.c"
},
"id": "CVE-2025-39810-f8c8e54c",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9ab6a9950f152e094395d2e3967f889857daa185",
"digest": {
"function_hash": "294605896331105177936880505650054940499",
"length": 1516.0
}
}
]