{"id":"CVE-2026-43276","title":"net: mana: Fix double destroy_workqueue on service rescan PCI path","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: mana: Fix double destroy_workqueue on service rescan PCI path\n\nWhile testing corner cases in the driver, a use-after-free crash\nwas found on the service rescan PCI…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 505cc26bcae00699bacaee66cd50ede7a9cc89cb < fa3c2f8d9152344a478abb847081c1b5f84a94f5","Linux >= 505cc26bcae00699bacaee66cd50ede7a9cc89cb < a9a7c3203fdc4d4a8d8a7a3b1ed05d2bb4c6e77e","Linux >= 505cc26bcae00699bacaee66cd50ede7a9cc89cb < f975a0955276579e2176a134366ed586071c7c6a","Linux 6.16"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial","timestamp":"2026-11-06T15:33:05.623184Z"},"published":"2026-05-06","updated":"2026-11-06","sourceUpdated":"2026-11-06T15:42:46.252Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-43276","references":[{"url":"https://git.kernel.org/stable/c/fa3c2f8d9152344a478abb847081c1b5f84a94f5"},{"url":"https://git.kernel.org/stable/c/a9a7c3203fdc4d4a8d8a7a3b1ed05d2bb4c6e77e"},{"url":"https://git.kernel.org/stable/c/f975a0955276579e2176a134366ed586071c7c6a"}],"tags":["cve.org"],"epss":0.00118,"epssPercentile":0.01711,"ingestedAt":"2026-11-06T15:54:03.951Z","slug":"CVE-2026-43276","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nnet: mana: Fix double destroy_workqueue on service rescan PCI path\n\nWhile testing corner cases in the driver, a use-after-free crash\nwas found on the service rescan PCI path.\n\nWhen mana_serv_reset() calls mana_gd_suspend(), mana_gd_cleanup()\ndestroys gc->service_wq. If the subsequent mana_gd_resume() fails\nwith -ETIMEDOUT or -EPROTO, the code falls through to\nmana_serv_rescan() which triggers pci_stop_and_remove_bus_device().\nThis invokes the PCI .remove callback (mana_gd_remove), which calls\nmana_gd_cleanup() a second time, attempting to destroy the already-\nfreed workqueue. Fix this by NULL-checking gc->service_wq in\nmana_gd_cleanup() and setting it to NULL after destruction.\n\nCall stack of issue for reference:\n[Sat Feb 21 18:53:48 2026] Call Trace:\n[Sat Feb 21 18:53:48 2026]  <TASK>\n[Sat Feb 21 18:53:48 2026]  mana_gd_cleanup+0x33/0x70 [mana]\n[Sat Feb 21 18:53:48 2026]  mana_gd_remove+0x3a/0xc0 [mana]\n[Sat Feb 21 18:53:48 2026]  pci_device_remove+0x41/0xb0\n[Sat Feb 21 18:53:48 2026]  device_remove+0x46/0x70\n[Sat Feb 21 18:53:48 2026]  device_release_driver_internal+0x1e3/0x250\n[Sat Feb 21 18:53:48 2026]  device_release_driver+0x12/0x20\n[Sat Feb 21 18:53:48 2026]  pci_stop_bus_device+0x6a/0x90\n[Sat Feb 21 18:53:48 2026]  pci_stop_and_remove_bus_device+0x13/0x30\n[Sat Feb 21 18:53:48 2026]  mana_do_service+0x180/0x290 [mana]\n[Sat Feb 21 18:53:48 2026]  mana_serv_func+0x24/0x50 [mana]\n[Sat Feb 21 18:53:48 2026]  process_one_work+0x190/0x3d0\n[Sat Feb 21 18:53:48 2026]  worker_thread+0x16e/0x2e0\n[Sat Feb 21 18:53:48 2026]  kthread+0xf7/0x130\n[Sat Feb 21 18:53:48 2026]  ? __pfx_worker_thread+0x10/0x10\n[Sat Feb 21 18:53:48 2026]  ? __pfx_kthread+0x10/0x10\n[Sat Feb 21 18:53:48 2026]  ret_from_fork+0x269/0x350\n[Sat Feb 21 18:53:48 2026]  ? __pfx_kthread+0x10/0x10\n[Sat Feb 21 18:53:48 2026]  ret_from_fork_asm+0x1a/0x30\n[Sat Feb 21 18:53:48 2026]  </TASK>\n\n## Affected\n\n- `Linux >= 505cc26bcae00699bacaee66cd50ede7a9cc89cb < fa3c2f8d9152344a478abb847081c1b5f84a94f5`\n- `Linux >= 505cc26bcae00699bacaee66cd50ede7a9cc89cb < a9a7c3203fdc4d4a8d8a7a3b1ed05d2bb4c6e77e`\n- `Linux >= 505cc26bcae00699bacaee66cd50ede7a9cc89cb < f975a0955276579e2176a134366ed586071c7c6a`\n- `Linux 6.16`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}