{"resultsPerPage":1,"startIndex":0,"totalResults":1,"format":"NVD_CVE","version":"2.0","timestamp":"2026-04-14T17:48:52.913","vulnerabilities":[{"cve":{"id":"CVE-2025-21973","sourceIdentifier":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","published":"2025-04-01T16:15:28.637","lastModified":"2026-01-22T20:57:38.830","vulnStatus":"Analyzed","cveTags":[],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\neth: bnxt: fix kernel panic in the bnxt_get_queue_stats{rx | tx}\n\nWhen qstats-get operation is executed, callbacks of netdev_stats_ops\nare called. The bnxt_get_queue_stats{rx | tx} collect per-queue stats\nfrom sw_stats in the rings.\nBut {rx | tx | cp}_ring are allocated when the interface is up.\nSo, these rings are not allocated when the interface is down.\n\nThe qstats-get is allowed even if the interface is down. However,\nthe bnxt_get_queue_stats{rx | tx}() accesses cp_ring and tx_ring\nwithout null check.\nSo, it needs to avoid accessing rings if the interface is down.\n\nReproducer:\n ip link set $interface down\n .\/cli.py --spec netdev.yaml --dump qstats-get\nOR\n ip link set $interface down\n python .\/stats.py\n\nSplat looks like:\n BUG: kernel NULL pointer dereference, address: 0000000000000000\n #PF: supervisor read access in kernel mode\n #PF: error_code(0x0000) - not-present page\n PGD 1680fa067 P4D 1680fa067 PUD 16be3b067 PMD 0\n Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI\n CPU: 0 UID: 0 PID: 1495 Comm: python3 Not tainted 6.14.0-rc4+ #32 5cd0f999d5a15c574ac72b3e4b907341\n Hardware name: ASUS System Product Name\/PRIME Z690-P D4, BIOS 0603 11\/01\/2021\n RIP: 0010:bnxt_get_queue_stats_rx+0xf\/0x70 [bnxt_en]\n Code: c6 87 b5 18 00 00 02 eb a2 66 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 01\n RSP: 0018:ffffabef43cdb7e0 EFLAGS: 00010282\n RAX: 0000000000000000 RBX: ffffffffc04c8710 RCX: 0000000000000000\n RDX: ffffabef43cdb858 RSI: 0000000000000000 RDI: ffff8d504e850000\n RBP: ffff8d506c9f9c00 R08: 0000000000000004 R09: ffff8d506bcd901c\n R10: 0000000000000015 R11: ffff8d506bcd9000 R12: 0000000000000000\n R13: ffffabef43cdb8c0 R14: ffff8d504e850000 R15: 0000000000000000\n FS:  00007f2c5462b080(0000) GS:ffff8d575f600000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: 0000000000000000 CR3: 0000000167fd0000 CR4: 00000000007506f0\n PKRU: 55555554\n Call Trace:\n  <TASK>\n  ? __die+0x20\/0x70\n  ? page_fault_oops+0x15a\/0x460\n  ? sched_balance_find_src_group+0x58d\/0xd10\n  ? exc_page_fault+0x6e\/0x180\n  ? asm_exc_page_fault+0x22\/0x30\n  ? bnxt_get_queue_stats_rx+0xf\/0x70 [bnxt_en cdd546fd48563c280cfd30e9647efa420db07bf1]\n  netdev_nl_stats_by_netdev+0x2b1\/0x4e0\n  ? xas_load+0x9\/0xb0\n  ? xas_find+0x183\/0x1d0\n  ? xa_find+0x8b\/0xe0\n  netdev_nl_qstats_get_dumpit+0xbf\/0x1e0\n  genl_dumpit+0x31\/0x90\n  netlink_dump+0x1a8\/0x360"},{"lang":"es","value":"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: eth: bnxt: corrige el pánico del kernel en bnxt_get_queue_stats{rx | tx} Cuando se ejecuta la operación qstats-get, se llaman las devoluciones de llamada de netdev_stats_ops. bnxt_get_queue_stats{rx | tx} recopila estadísticas por cola de sw_stats en los anillos. Pero {rx | tx | cp}_ring se asignan cuando la interfaz está activa. Por lo tanto, estos anillos no se asignan cuando la interfaz está inactiva. qstats-get está permitido incluso si la interfaz está inactiva. Sin embargo, bnxt_get_queue_stats{rx | tx}() accede a cp_ring y tx_ring sin comprobación de valores nulos. Por lo tanto, debe evitar acceder a los anillos si la interfaz está inactiva. Reproductor: ip link set $interface down .\/cli.py --spec netdev.yaml --dump qstats-get O ip link set $interface down python .\/stats.py El problema se parece a esto: ERROR: desreferencia de puntero NULL del kernel, dirección: 0000000000000000 #PF: acceso de lectura del supervisor en modo kernel #PF: error_code(0x0000) - página no presente PGD 1680fa067 P4D 1680fa067 PUD 16be3b067 PMD 0 Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 0 UID: 0 PID: 1495 Comm: python3 No contaminado 6.14.0-rc4+ #32 5cd0f999d5a15c574ac72b3e4b907341 Nombre del hardware: Nombre del producto del sistema ASUS System Product Name\/PRIME Z690-P D4, BIOS 0603 11\/01\/2021 RIP: 0010:bnxt_get_queue_stats_rx+0xf\/0x70 [bnxt_en] Code: c6 87 b5 18 00 00 02 eb a2 66 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 01 RSP: 0018:ffffabef43cdb7e0 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffffffffc04c8710 RCX: 0000000000000000 RDX: ffffabef43cdb858 RSI: 0000000000000000 RDI: ffff8d504e850000 RBP: ffff8d506c9f9c00 R08: 0000000000000004 R09: ffff8d506bcd901c R10: 0000000000000015 R11: ffff8d506bcd9000 R12: 0000000000000000 R13: ffffabef43cdb8c0 R14: ffff8d504e850000 R15: 0000000000000000 FS: 00007f2c5462b080(0000) GS:ffff8d575f600000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 0000000167fd0000 CR4: 00000000007506f0 PKRU: 55555554 Call Trace:  ? __die+0x20\/0x70 ? page_fault_oops+0x15a\/0x460 ? sched_balance_find_src_group+0x58d\/0xd10 ? exc_page_fault+0x6e\/0x180 ? asm_exc_page_fault+0x22\/0x30 ? bnxt_get_queue_stats_rx+0xf\/0x70 [bnxt_en cdd546fd48563c280cfd30e9647efa420db07bf1] netdev_nl_stats_by_netdev+0x2b1\/0x4e0 ? xas_load+0x9\/0xb0 ? xas_find+0x183\/0x1d0 ? xa_find+0x8b\/0xe0 netdev_nl_qstats_get_dumpit+0xbf\/0x1e0 genl_dumpit+0x31\/0x90 netlink_dump+0x1a8\/0x360 "}],"metrics":{"cvssMetricV31":[{"source":"nvd@nist.gov","type":"Primary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1\/AV:L\/AC:L\/PR:L\/UI:N\/S:U\/C:H\/I:N\/A:H","baseScore":7.1,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"NONE","availabilityImpact":"HIGH"},"exploitabilityScore":1.8,"impactScore":5.2}]},"weaknesses":[{"source":"nvd@nist.gov","type":"Primary","description":[{"lang":"en","value":"NVD-CWE-noinfo"}]}],"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.9","versionEndExcluding":"6.12.20","matchCriteriaId":"513AF679-3B07-4CEA-9304-17045CBED7F0"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"6.13.8","matchCriteriaId":"0A20D4D7-B329-4C68-B662-76062EA7DCF0"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*","matchCriteriaId":"186716B6-2B66-4BD0-852E-D48E71C0C85F"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*","matchCriteriaId":"0D3E781C-403A-498F-9DA9-ECEE50F41E75"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*","matchCriteriaId":"66619FB8-0AAF-4166-B2CF-67B24143261D"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*","matchCriteriaId":"D3D6550E-6679-4560-902D-AF52DCFE905B"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.14:rc5:*:*:*:*:*:*","matchCriteriaId":"45B90F6B-BEC7-4D4E-883A-9DBADE021750"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.14:rc6:*:*:*:*:*:*","matchCriteriaId":"1759FFB7-531C-41B1-9AE1-FD3D80E0D920"}]}]}],"references":[{"url":"https:\/\/git.kernel.org\/stable\/c\/adb830085f0fc3a09a0fc8b64fed2e7c8d244665","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"]},{"url":"https:\/\/git.kernel.org\/stable\/c\/f059a0fd733078c3832fd0f3a3037aa5975d3d36","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"]},{"url":"https:\/\/git.kernel.org\/stable\/c\/f09af5fdfbd9b0fcee73aab1116904c53b199e97","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"]}]}}]}