CVE-2024-46701 in Linuxالمعلومات

الملخص

بحسب VulDB • 16/08/2026

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

libfs: إصلاح القراءة اللانهائية للمجلدات في مجلد الإزاحة (offset dir)

بعد أن قمنا بتبديل عمليات تشغيل المجلدات في tmpfs من simple_dir_operations إلى simple_offset_dir_operations، فإن كل عملية إعادة تسمية تحدث ستقوم بملء الشجرة القيقبية (maple tree) الخاصة بمجلد الوجهة (&SHMEM_I(inode)->dir_offsets->mt) بدخيل dentry جديد باستخدام مفتاح فارغ يبدأ بقيمة octx->newx_offset، ثم تعيين newx_offset لتساوي المفتاح الفارغ + 1. سيؤدي هذا إلى قراءة مجلدات لا نهائية (infinite readdir) مقترنة بإعادة تسمية تحدث في نفس الوقت، مما يتسبب في فشل الاختبار generic/736 في xfstests (التفاصيل موضحة أدناه).

1. إنشاء 5000 ملفًا (1 2 3...) تحت مجلد واحد 2. استدعاء readdir(man 3 readdir) مرة واحدة، والحصول على إدخال واحد 3. إعادة تسمية(entry, "TEMPFILE")، ثم إعادة تسمية("TEMPFILE", entry) 4. تكرار الخطوتين 2 و3 حتى يعيد readdir عدم وجود نتائج أو نكرر الحلقة عددًا كبيرًا جدًا (تقوم tmpfs بكسر الاختبار بناءً على الشرط الثاني)

اخترنا نفس المنطق المستخدم في الالتزام commit 9b378f6ad48cf ("btrfs: fix infinite directory reads") لإصلاح هذه المشكلة، حيث نسجل last_index عند فتح المجلد، ولا نخرج الإدخال الذي يكون index >= last_index. يمكن الآن استخدام file->private_data الموجود حاليًا في مجلد الإزاحة (offset dir) مباشرةً للقيام بذلك، كما نقوم أيضًا بتحديث last_index عندما نستخدم llseek على ملف المجلد.

[brauner: تحديث last_index بعد البحث فقط عند تكون الإزاحة صفرًا، مثلما اقترح Jan]

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

11/09/2024

إفشاء

13/09/2024

الاعتدال

تمت الموافقة

إدخال

VDB-277388

EPSS

0.00189

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!