In the Linux kernel, the following vulnerability has been resolved:
spi: meson-spicc: Fix double-put in remove path
meson_spicc_probe() registers the controller with
devm_spi_register_controller(), so teardown already drops the
controller reference via devm cleanup.
Calling spi_controller_put() again in meson_spicc_remove()
causes a double-put.
CVE-2026-31489 is a double-put vulnerability in the Linux kernel's Meson SPI controller driver that can cause kernel memory corruption and system instability. The vulnerability occurs when the remove function incorrectly releases a reference to an SPI controller that was already freed by device manager cleanup, potentially leading to use-after-free conditions. While no public exploits are available, this affects systems running vulnerable Linux kernel versions with Meson SPI hardware.
Immediate Actions:
1. Identify systems running Linux kernel versions 5.14 through 7.0-rc1 with Meson SPI hardware
2. Check kernel logs for SPI controller errors or unexpected crashes
3. Disable Meson SPI driver if not essential until patching is completed
Patching Guidance:
1. Update to Linux kernel version 7.0 final release or later
2. Apply upstream patch that removes the redundant spi_controller_put() call from meson_spicc_remove()
3. Verify patch application by reviewing driver code to ensure single reference release path
Compensating Controls:
1. Monitor kernel panic logs and system stability metrics
2. Implement watchdog timers to detect and recover from kernel hangs
3. Restrict physical access to devices with Meson SPI controllers
4. Use kernel module signing to prevent unauthorized driver modifications
Detection Rules:
1. Monitor for kernel messages: 'spi_controller_put' or 'meson_spicc_remove' in kernel logs
2. Alert on unexpected kernel panics or use-after-free warnings
3. Track SPI device enumeration changes during system operation
الإجراءات الفورية:
1. تحديد الأنظمة التي تقوم بتشغيل إصدارات نواة Linux من 5.14 إلى 7.0-rc1 مع أجهزة Meson SPI
2. التحقق من سجلات النواة للأخطاء أو الأعطال غير المتوقعة في وحدة التحكم SPI
3. تعطيل برنامج تشغيل Meson SPI إذا لم يكن ضروريًا حتى اكتمال التصحيح
إرشادات التصحيح:
1. التحديث إلى إصدار نواة Linux 7.0 النهائي أو أحدث
2. تطبيق الرقعة الأصلية التي تزيل استدعاء spi_controller_put() الزائد من meson_spicc_remove()
3. التحقق من تطبيق الرقعة بمراجعة كود برنامج التشغيل للتأكد من مسار إصدار مرجع واحد
الضوابط التعويضية:
1. مراقبة سجلات الذعر في النواة ومقاييس استقرار النظام
2. تنفيذ مؤقتات watchdog للكشف والتعافي من تعليق النواة
3. تقييد الوصول المادي إلى الأجهزة التي تحتوي على وحدات تحكم Meson SPI
4. استخدام توقيع وحدة النواة لمنع تعديلات برنامج التشغيل غير المصرح بها
قواعد الكشف:
1. مراقبة رسائل النواة: 'spi_controller_put' أو 'meson_spicc_remove' في سجلات النواة
2. التنبيه على حالات الذعر غير المتوقعة في النواة أو تحذيرات الاستخدام بعد التحرير
3. تتبع تغييرات تعداد جهاز SPI أثناء تشغيل النظام