CVE-2026-97416 in Linuxالمعلومات

الملخص

بحسب VulDB • 24/09/2026

في نواة لينكس، تم إصلاح الثغرة التالية:

btrfs: balance: تصحيح فشل محتمل في البحث عن مجموعة الكتل (bg) داخل دالة btrfs_may_alloc_data_chunk()

[الخلل]
يمكن أن يؤدي تشغيل عملية موازنة btrfs إلى حدوث خطأ إلغاء مرجع المؤشر الفارغ (null-ptr-deref) قبل إعادة توطين كتلة البيانات، عندما تترك فساد بيانات الكتلة كياناً في شجرة الكتل دون وجود مجموعة كتل مقابلة في ذاكرة التخزين المؤقت:

KASAN: null-ptr-deref in range [0x0000000000000088-0x000000000000008f]
RIP: 0010:btrfs_may_alloc_data_chunk+0x40/0x1c0 fs/btrfs/volumes.c:3601 Call Trace: __btrfs_balance fs/btrfs/volumes.c:4217 [inline]
btrfs_balance+0x2516/0x42b0 fs/btrfs/volumes.c:4604 btrfs_ioctl_balance fs/btrfs/ioctl.c:3577 [inline]
btrfs_ioctl+0x25cf/0x5b90 fs/btrfs/ioctl.c:5313 ...

[السبب]
تقوم الدالة __btrfs_balance() بتكرار شجرة الكتل الموجودة على القرص ونقل رقم بايت المنطقي للكتلة إلى دالة btrfs_may_alloc_data_chunk() قبل إعادة توطين كتلة البيانات. ثم تستدعي هذه المساعدة ذاكرة التخزين المؤقت لمجموعات الكتلات:

cache = btrfs_lookup_block_group(fs_info, chunk_offset); chunk_type = cache->flags; /* قد يكون الـ cache فارغاً (NULL) */

يمكن أن تحتوي الصورة الفاسدة على عنصر كتلة يفتقر إلى عنصر مجموعة الكتل المطابق له، وبالتالي لا يتم إدراج أي مجموعة كتل في ذاكرة التخزين المؤقت. في هذه الحالة، تُرجع الدالة btrfs_lookup_block_group() قيمة NULL.

يحمي الشيفرة هذا الوضع فقط باستخدام ASSERT(cache)، والتي تصبح بلا فائدة (no-op) عندما يكون CONFIG_BTRFS_ASSERT معطلاً. وبالتالي، يؤدي إلغاء مرجع cache->flags لاحقاً إلى تعطل النواة.

[الحل]
إضافة فحص لقيمة NULL بعد استدعاء btrfs_lookup_block_group() داخل دالة btrfs_may_alloc_data_chunk() وطباعة رسالة خطأ للتوضيح.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

Linux

حجز

24/09/2026

إفشاء

24/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-409582

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you need the next level of professionalism?

Upgrade your account now!