{"id":"CVE-2025-39810","title":"bnxt_en: Fix memory corruption when FW resources change during ifdown","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Fix memory corruption when FW resources change during ifdown\n\nbnxt_set_dflt_rings() assumes that it is always called before any TC has\nbeen created.  So it doe…","severity":"high","cvss":7.8,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cvssSource":"cna","vendor":"Linux","product":"Linux","affected":["Linux >= ec5d31e3c15d5233b491400133c67f78a320062c < dc797a4bbbcac6d19e6e2508e4df685755cd94a5","Linux >= ec5d31e3c15d5233b491400133c67f78a320062c < d00e98977ef519280b075d783653e2c492fffbb6","Linux >= ec5d31e3c15d5233b491400133c67f78a320062c < 9ab6a9950f152e094395d2e3967f889857daa185","Linux >= ec5d31e3c15d5233b491400133c67f78a320062c < 2747328ba2714f1a7454208dbbc1dc0631990b4a","Linux 5.4"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"total","timestamp":"2026-01-14T18:14:51.954727Z"},"published":"2025-09-16","updated":"2026-10-21","sourceUpdated":"2026-10-21T12:37:22.794Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2025-39810","references":[{"url":"https://git.kernel.org/stable/c/dc797a4bbbcac6d19e6e2508e4df685755cd94a5"},{"url":"https://git.kernel.org/stable/c/d00e98977ef519280b075d783653e2c492fffbb6"},{"url":"https://git.kernel.org/stable/c/9ab6a9950f152e094395d2e3967f889857daa185"},{"url":"https://git.kernel.org/stable/c/2747328ba2714f1a7454208dbbc1dc0631990b4a"}],"tags":["cve.org"],"epss":0.00199,"epssPercentile":0.09584,"ingestedAt":"2026-10-21T12:48:53.698Z","slug":"CVE-2025-39810","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Fix memory corruption when FW resources change during ifdown\n\nbnxt_set_dflt_rings() assumes that it is always called before any TC has\nbeen created.  So it doesn't take bp->num_tc into account and assumes\nthat it is always 0 or 1.\n\nIn the FW resource or capability change scenario, the FW will return\nflags in bnxt_hwrm_if_change() that will cause the driver to\nreinitialize and call bnxt_cancel_reservations().  This will lead to\nbnxt_init_dflt_ring_mode() calling bnxt_set_dflt_rings() and bp->num_tc\nmay be greater than 1.  This will cause bp->tx_ring[] to be sized too\nsmall and cause memory corruption in bnxt_alloc_cp_rings().\n\nFix it by properly scaling the TX rings by bp->num_tc in the code\npaths mentioned above.  Add 2 helper functions to determine\nbp->tx_nr_rings and bp->tx_nr_rings_per_tc.\n\n## Affected\n\n- `Linux >= ec5d31e3c15d5233b491400133c67f78a320062c < dc797a4bbbcac6d19e6e2508e4df685755cd94a5`\n- `Linux >= ec5d31e3c15d5233b491400133c67f78a320062c < d00e98977ef519280b075d783653e2c492fffbb6`\n- `Linux >= ec5d31e3c15d5233b491400133c67f78a320062c < 9ab6a9950f152e094395d2e3967f889857daa185`\n- `Linux >= ec5d31e3c15d5233b491400133c67f78a320062c < 2747328ba2714f1a7454208dbbc1dc0631990b4a`\n- `Linux 5.4`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":43,"depthScoreParts":{"impact":42.9,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}