In the Linux kernel, the following vulnerability has been resolved:
net: mana: Fix double destroy_workqueue on service rescan PCI path
While testing corner cases in the driver, a use-after-free crash
was found on the service rescan PCI path.
When mana_serv_reset() calls mana_gd_suspend(), mana_gd_cleanup()
destroys gc->service_wq. If the subsequent mana_gd_resume() fails
with -ETIMEDOUT or -EPROTO, the code falls through to
mana_serv_rescan() which triggers pci_stop_and_remove_bus_device().
This invokes the PCI .remove callback (mana_gd_remove), which calls
mana_gd_cleanup() a second time, attempting to destroy the already-
freed workqueue. Fix this by NULL-checking gc->service_wq in
mana_gd_cleanup() and setting it to NULL after destruction.
Call stack of issue for reference:
[Sat Feb 21 18:53:48 2026] Call Trace:
[Sat Feb 21 18:53:48 2026] <TASK>
[Sat Feb 21 18:53:48 2026] mana_gd_cleanup+0x33/0x70 [mana]
[Sat Feb 21 18:53:48 2026] mana_gd_remove+0x3a/0xc0 [mana]
[Sat Feb 21 18:53:48 2026] pci_device_remove+0x41/0xb0
[Sat Feb 21 18:53:48 2026] device_remove+0x46/0x70
[Sat Feb 21 18:53:48 2026] device_release_driver_internal+0x1e3/0x250
[Sat Feb 21 18:53:48 2026] device_release_driver+0x12/0x20
[Sat Feb 21 18:53:48 2026] pci_stop_bus_device+0x6a/0x90
[Sat Feb 21 18:53:48 2026] pci_stop_and_remove_bus_device+0x13/0x30
[Sat Feb 21 18:53:48 2026] mana_do_service+0x180/0x290 [mana]
[Sat Feb 21 18:53:48 2026] mana_serv_func+0x24/0x50 [mana]
[Sat Feb 21 18:53:48 2026] process_one_work+0x190/0x3d0
[Sat Feb 21 18:53:48 2026] worker_thread+0x16e/0x2e0
[Sat Feb 21 18:53:48 2026] kthread+0xf7/0x130
[Sat Feb 21 18:53:48 2026] ? __pfx_worker_thread+0x10/0x10
[Sat Feb 21 18:53:48 2026] ? __pfx_kthread+0x10/0x10
[Sat Feb 21 18:53:48 2026] ret_from_fork+0x269/0x350
[Sat Feb 21 18:53:48 2026] ? __pfx_kthread+0x10/0x10
[Sat Feb 21 18:53:48 2026] ret_from_fork_asm+0x1a/0x30
[Sat Feb 21 18:53:48 2026] </TASK>
CVE-2026-43276 is a use-after-free vulnerability in the Linux kernel's MANA (Microsoft Azure Network Adapter) driver affecting service rescan PCI paths. A double destroy_workqueue condition occurs when mana_gd_resume() fails, causing the PCI removal callback to attempt destroying an already-freed workqueue. This can lead to kernel crashes and potential privilege escalation on systems running affected kernel versions with MANA network adapters.
IMMEDIATE ACTIONS:
1. Identify all Linux servers running MANA driver (check: ethtool -i <interface> | grep driver)
2. Verify kernel version against affected versions (7.0-rc1 and related)
3. Implement network segmentation to limit PCI device hotplug operations
PATCHING GUIDANCE:
1. Apply Linux kernel security patch that adds NULL-checking in mana_gd_cleanup() function
2. Ensure gc->service_wq is set to NULL after workqueue destruction
3. Test patch in non-production environment before deployment
4. Schedule maintenance window for kernel updates on affected systems
COMPENSATING CONTROLS (if immediate patching unavailable):
1. Disable PCI hotplug functionality where operationally feasible
2. Restrict service rescan operations through driver parameter tuning
3. Implement kernel module reload restrictions via SELinux/AppArmor policies
4. Monitor system logs for mana driver errors and kernel panics
DETECTION RULES:
1. Monitor kernel logs for: "mana_gd_cleanup", "destroy_workqueue", "use-after-free"
2. Alert on unexpected kernel panics involving mana driver
3. Track PCI device removal events correlated with service rescan operations
4. Monitor for repeated mana driver initialization failures followed by device removal
الإجراءات الفورية:
1. تحديد جميع خوادم Linux التي تعمل برنامج تشغيل MANA (تحقق: ethtool -i <interface> | grep driver)
2. التحقق من إصدار النواة مقابل الإصدارات المتأثرة (7.0-rc1 والإصدارات ذات الصلة)
3. تنفيذ تقسيم الشبكة لتحديد عمليات PCI hotplug
إرشادات التصحيح:
1. تطبيق تصحيح أمان نواة Linux الذي يضيف فحص NULL في دالة mana_gd_cleanup()
2. التأكد من تعيين gc->service_wq إلى NULL بعد تدمير workqueue
3. اختبار التصحيح في بيئة غير الإنتاج قبل النشر
4. جدولة نافذة صيانة لتحديثات النواة على الأنظمة المتأثرة
الضوابط البديلة (إذا لم يكن التصحيح الفوري متاحاً):
1. تعطيل وظيفة PCI hotplug حيث يكون ذلك ممكناً من الناحية التشغيلية
2. تقييد عمليات إعادة الفحص من خلال ضبط معاملات برنامج التشغيل
3. تنفيذ قيود إعادة تحميل وحدة النواة عبر سياسات SELinux/AppArmor
4. مراقبة سجلات النظام لأخطاء برنامج تشغيل mana وتوقف النواة
قواعد الكشف:
1. مراقبة سجلات النواة للبحث عن: "mana_gd_cleanup", "destroy_workqueue", "use-after-free"
2. تنبيه عند توقف النواة غير المتوقع الذي يتضمن برنامج تشغيل mana
3. تتبع أحداث إزالة أجهزة PCI المرتبطة بعمليات إعادة الفحص
4. مراقبة فشل تهيئة برنامج تشغيل mana المتكرر متبوعاً بإزالة الجهاز