In the Linux kernel, the following vulnerability has been resolved:
RDMA/umem: Fix double dma_buf_unpin in failure path
In ib_umem_dmabuf_get_pinned_with_dma_device(), the call to
ib_umem_dmabuf_map_pages() can fail. If this occurs, the dmabuf
is immediately unpinned but the umem_dmabuf->pinned flag is still
set. Then, when ib_umem_release() is called, it calls
ib_umem_dmabuf_revoke() which will call dma_buf_unpin() again.
Fix this by removing the immediate unpin upon failure and just let
the ib_umem_release/revoke path handle it. This also ensures the
proper unmap-unpin unwind ordering if the dmabuf_map_pages call
happened to fail due to dma_resv_wait_timeout (and therefore has
a non-NULL umem_dmabuf->sgt).
CVE-2026-43128 is a double-free vulnerability in the Linux kernel's RDMA/umem subsystem affecting DMA buffer management. The flaw occurs when ib_umem_dmabuf_map_pages() fails, causing improper cleanup that leads to a second unpin attempt during resource release. This can cause kernel crashes, memory corruption, or potential privilege escalation on systems using RDMA over DMA buffers.
Immediate Actions:
1. Identify all Linux systems running kernel versions 7.0-rc1 and earlier with RDMA/umem modules enabled
2. Check system logs for RDMA-related errors or kernel panics
3. Disable RDMA services if not critical until patching is completed
Patching Guidance:
1. Apply the latest stable Linux kernel patch that includes the RDMA/umem double-unpin fix
2. Prioritize patching for systems with active RDMA workloads
3. Test patches in non-production environments first
4. Schedule maintenance windows for kernel updates with minimal service impact
Compensating Controls (if immediate patching unavailable):
1. Implement strict access controls to RDMA-enabled interfaces
2. Monitor kernel logs for dma_buf_unpin errors and memory corruption indicators
3. Isolate RDMA workloads to dedicated, monitored systems
4. Implement memory protection mechanisms (SMEP, SMAP if available)
Detection Rules:
1. Monitor for kernel panic messages containing 'dma_buf_unpin' or 'ib_umem_dmabuf'
2. Alert on repeated RDMA allocation/deallocation failures
3. Track kernel memory corruption indicators in dmesg
4. Monitor for unexpected process terminations on RDMA-enabled systems
الإجراءات الفورية:
1. تحديد جميع أنظمة Linux التي تعمل بإصدارات kernel 7.0-rc1 وأقدم مع تفعيل وحدات RDMA/umem
2. فحص سجلات النظام للأخطاء المتعلقة بـ RDMA أو انهيارات kernel
3. تعطيل خدمات RDMA إذا لم تكن حرجة حتى يتم تطبيق التصحيحات
إرشادات التصحيح:
1. تطبيق أحدث تصحيح kernel مستقر يتضمن إصلاح double-unpin في RDMA/umem
2. إعطاء الأولوية لتصحيح الأنظمة ذات أحمال عمل RDMA النشطة
3. اختبار التصحيحات في بيئات غير الإنتاج أولاً
4. جدولة نوافذ الصيانة لتحديثات kernel بأقل تأثير على الخدمة
الضوابط البديلة (إذا لم يكن التصحيح الفوري متاحاً):
1. تنفيذ ضوابط وصول صارمة لواجهات RDMA
2. مراقبة سجلات kernel لأخطاء dma_buf_unpin ومؤشرات تلف الذاكرة
3. عزل أحمال عمل RDMA على أنظمة مخصصة ومراقبة
4. تنفيذ آليات حماية الذاكرة (SMEP, SMAP إن أمكن)
قواعد الكشف:
1. مراقبة رسائل انهيار kernel التي تحتوي على 'dma_buf_unpin' أو 'ib_umem_dmabuf'
2. التنبيه على فشل تخصيص/إلغاء تخصيص RDMA المتكرر
3. تتبع مؤشرات تلف ذاكرة kernel في dmesg
4. مراقبة إنهاء العمليات غير المتوقعة على الأنظمة المفعلة لـ RDMA