In the Linux kernel, the following vulnerability has been resolved:
mmc: vub300: fix use-after-free on disconnect
The vub300 driver maintains an explicit reference count for the
controller and its driver data and the last reference can in theory be
dropped after the driver has been unbound.
This specifically means that the controller allocation must not be
device managed as that can lead to use-after-free.
Note that the lifetime is currently also incorrectly tied the parent USB
device rather than interface, which can lead to memory leaks if the
driver is unbound without its device being physically disconnected (e.g.
on probe deferral).
Fix both issues by reverting to non-managed allocation of the controller.
CVE-2026-31650 is a use-after-free vulnerability in the Linux kernel's vub300 MMC driver that occurs during device disconnect. The vulnerability stems from improper memory management where device-managed allocation can lead to reference counting issues, potentially allowing memory corruption or denial of service. This affects multiple kernel versions from 6.17 through 7.0-rc7, with a CVSS score of 7.8 (high severity).
Immediate Actions:
1. Identify systems running affected Linux kernel versions (6.17, 7.0-rc1 through rc7) using 'uname -r'
2. Audit systems with vub300 driver loaded: 'lsmod | grep vub300'
3. Disable vub300 driver if not essential: 'echo blacklist vub300 >> /etc/modprobe.d/blacklist.conf'
Patching Guidance:
1. Update to Linux kernel 7.0 final release or later when available
2. For RHEL/CentOS: Apply kernel security updates from vendor repositories
3. For Ubuntu: Run 'apt update && apt upgrade linux-image-generic'
4. For Debian: Apply kernel updates from security.debian.org
Compensating Controls (if immediate patching unavailable):
1. Restrict USB device access via udev rules to authorized users only
2. Disable USB MMC/SD card reader functionality if not required
3. Monitor kernel logs for use-after-free errors: 'dmesg | grep -i "use-after-free"'
4. Implement strict USB device policies via SELinux or AppArmor
Detection Rules:
1. Monitor for kernel panic messages related to vub300 driver
2. Alert on unexpected kernel module unload/reload cycles
3. Track USB device disconnect/reconnect events in syslog
4. Monitor for memory corruption indicators in kernel logs
الإجراءات الفورية:
1. تحديد الأنظمة التي تعمل بإصدارات نواة Linux المتأثرة (6.17، 7.0-rc1 إلى rc7) باستخدام 'uname -r'
2. تدقيق الأنظمة التي تحتوي على برنامج تشغيل vub300 محمل: 'lsmod | grep vub300'
3. تعطيل برنامج تشغيل vub300 إذا لم يكن ضروريًا: 'echo blacklist vub300 >> /etc/modprobe.d/blacklist.conf'
إرشادات التصحيح:
1. التحديث إلى إصدار نواة Linux 7.0 النهائي أو أحدث عند توفره
2. بالنسبة لـ RHEL/CentOS: تطبيق تحديثات أمان النواة من مستودعات البائع
3. بالنسبة لـ Ubuntu: تشغيل 'apt update && apt upgrade linux-image-generic'
4. بالنسبة لـ Debian: تطبيق تحديثات النواة من security.debian.org
الضوابط البديلة (إذا لم يكن التصحيح الفوري متاحًا):
1. تقييد الوصول إلى جهاز USB عبر قواعد udev للمستخدمين المصرح لهم فقط
2. تعطيل وظيفة قارئ MMC/SD card عبر USB إذا لم تكن مطلوبة
3. مراقبة سجلات النواة للأخطاء: 'dmesg | grep -i "use-after-free"'
4. تطبيق سياسات جهاز USB صارمة عبر SELinux أو AppArmor
قواعد الكشف:
1. مراقبة رسائل kernel panic المتعلقة ببرنامج تشغيل vub300
2. التنبيه على دورات تحميل/إعادة تحميل وحدة النواة غير المتوقعة
3. تتبع أحداث قطع/إعادة توصيل جهاز USB في syslog
4. مراقبة مؤشرات تلف الذاكرة في سجلات النواة