CVE-2022-49810 in Linux
الملخص
بحسب VulDB • 01/07/2026
في نواة لينكس، تم حل الثغرة التالية:
netfs: إصلاح استدعاءات xas_retry() المفقودة أثناء تكرار مصفوفة الفهرسة (xarray)
تقوم مكتبة netfslib بعدة عمليات تكرار لمصفوفة الفهرسة (xarray) بينما يكون القفل للقراءة باستخدام RCU مفعلًا. ومن المفترض أن تستدعي الدالة xas_retry() كأول إجراء داخل الحلقة، وأن تقوم بتنفيذ "continue" إذا عادت بقيمة صحيحة في حال قام متصفح مصفوفة الفهرسة بإرجاع قيمة خاصة تشير إلى ضرورة إعادة بدء التكرار من الجذر[*].
يتم إصلاح هذه المشكلة عن طريق إضافة فحوصات الإعادة (retry) المفقودة.
[*] أتساءل عما إذا كان ينبغي تنفيذ ذلك داخل دوال مثل xas_find() وxas_next_node() وما شابه، لكن قيل لي أن هذا ليس تغييرًا بسيطًا لتنفيذه.
يمكن أن يؤدي هذا إلى حدوث خطأ من نوع oops كما هو موضح أدناه. لاحظ عنوان الخطأ - هذه قيمة داخلية (|0x2) تم إرجاعها من مصفوفة الفهرسة (xarray).
BUG: kernel NULL pointer dereference, address: 0000000000000402 ... RIP: 0010:netfs_rreq_unlock+0xef/0x380 [netfs]
... Call Trace: netfs_rreq_assess+0xa6/0x240 [netfs]
netfs_readpage+0x173/0x3b0 [netfs]
? init_wait_var_entry+0x50/0x50 filemap_read_page+0x33/0xf0 filemap_get_pages+0x2f2/0x3f0 filemap_read+0xaa/0x320 ? do_filp_open+0xb2/0x150 ? rmqueue+0x3be/0xe10 ceph_read_iter+0x1fe/0x680 [ceph]
? new_sync_read+0x115/0x1a0 new_sync_read+0x115/0x1a0 vfs_read+0xf3/0x180 ksys_read+0x5f/0xe0 do_syscall_64+0x38/0x90 entry_SYSCALL_64_after_hwframe+0x44/0xae
التغييرات: ======== الإصدار رقم 2) - تم تغيير نوع البيانات من unsigned int إلى size_t لتقليل احتمالية حدوث تجاوز في السعة (overflow) وفقًا لاقتراح Willy. - تمت إضافة تصحيح إضافي لإصلاح العمليات الحسابية.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.