In the Linux kernel, the following vulnerability has been resolved:
soc: ti: pruss: Fix double free in pruss_clk_mux_setup()
In the pruss_clk_mux_setup(), the devm_add_action_or_reset() indirectly
calls pruss_of_free_clk_provider(), which calls of_node_put(clk_mux_np)
on the error path. However, after the devm_add_action_or_reset()
returns, the of_node_put(clk_mux_np) is called again, causing a double
free.
Fix by returning directly, to avoid the duplicate of_node_put().
CVE-2026-43196 is a double-free vulnerability in the Linux kernel's TI PRUSS (Programmable Real-Time Unit SubSystem) driver affecting the pruss_clk_mux_setup() function. The vulnerability occurs when devm_add_action_or_reset() indirectly triggers pruss_of_free_clk_provider(), which frees a clock node pointer, followed by a duplicate free operation. While no public exploits are available, this memory corruption vulnerability could lead to kernel crashes or potential privilege escalation on affected systems.
Immediate Actions:
1. Identify all systems running Linux kernel versions with TI PRUSS driver enabled (check: grep -r 'CONFIG_TI_PRUSS' /boot/config-*)
2. Audit systems using TI PRUSS hardware in production environments
3. Implement kernel module blacklisting if PRUSS is not required: echo 'blacklist pruss' >> /etc/modprobe.d/blacklist.conf
Patching Guidance:
1. Apply the latest stable Linux kernel patch that includes the fix for CVE-2026-43196
2. For systems unable to immediately patch, disable PRUSS driver if not critical to operations
3. Recompile kernel with updated PRUSS driver code or apply backported patch
4. Test patches in non-production environment before deployment
Compensating Controls:
1. Restrict physical access to systems with PRUSS hardware
2. Implement kernel module signing and secure boot to prevent unauthorized driver loading
3. Monitor system logs for kernel panics and memory corruption errors: journalctl -p err
4. Deploy kernel address space layout randomization (ASLR) and stack canaries
Detection Rules:
1. Monitor for kernel oops/panic messages containing 'pruss' or 'clk_mux'
2. Alert on unexpected kernel module unloading/reloading of pruss driver
3. Track memory allocation failures in PRUSS subsystem using kernel tracing
4. Monitor dmesg for 'double free' or 'use-after-free' warnings
الإجراءات الفورية:
1. تحديد جميع الأنظمة التي تقوم بتشغيل إصدارات نواة لينكس مع تفعيل برنامج تشغيل TI PRUSS
2. تدقيق الأنظمة التي تستخدم أجهزة TI PRUSS في بيئات الإنتاج
3. تنفيذ إدراج وحدة النواة في القائمة السوداء إذا لم تكن PRUSS مطلوبة
إرشادات التصحيح:
1. تطبيق أحدث تصحيح نواة لينكس المستقر الذي يتضمن الإصلاح
2. للأنظمة غير القادرة على التصحيح الفوري، قم بتعطيل برنامج تشغيل PRUSS
3. إعادة تجميع النواة برمز برنامج التشغيل المحدث أو تطبيق التصحيح المرتجع
4. اختبار التصحيحات في بيئة غير الإنتاج قبل النشر
الضوابط التعويضية:
1. تقييد الوصول المادي إلى الأنظمة التي تحتوي على أجهزة PRUSS
2. تنفيذ توقيع وحدة النواة والإقلاع الآمن
3. مراقبة سجلات النظام للأخطاء والانهيارات
4. نشر تعشوية عنوان مساحة النواة والحماية من تجاوز المكدس
قواعد الكشف:
1. مراقبة رسائل انهيار النواة التي تحتوي على 'pruss'
2. التنبيه على تحميل/إعادة تحميل وحدة النواة غير المتوقعة
3. تتبع فشل تخصيص الذاكرة في نظام PRUSS
4. مراقبة dmesg للتحذيرات المتعلقة بالتحرير المزدوج