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

الملخص

بحسب VulDB • 27/05/2026

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

md/raid10: إصلاح حالة التوقف (Deadlock) مع عملية الفحص وطلبات nowait

عندما تكون عملية فحص المصفوفة قيد التشغيل، فإنها ترفع حاجز الانتظار (barrier)، مما يؤدي إلى حجب الطلبات العادية وزيادة قيمة nr_pending للإشارة إلى وجود عمل معلق داخل wait_barrier(). لا تقوم طلبات NOWAIT بالحجب، وبالتالي تعود فوراً بخطأ، ولا تقوم أيضاً بزيادة قيمة nr_pending في wait_barrier(). أضافت التغييرات الواردة في commit 43806c3d5b9b ("raid10: cleanup memleak at raid10_make_request") استدعاءً لـ raid_end_bio_io() لإصلاح تسرب الذاكرة عندما تصطدم طلبات NOWAIT بهذه الحالة. تستدعي raid_end_bio_io() في النهاية allow_barrier()، وتقوم بشكل غير مشروط بتنفيذ atomic_dec_and_test(&conf->nr_pending) حتى وإن لم تحدث الزيادة المقابلة في nr_pending في حالة NOWAIT.

يمكن ملاحظة ذلك بسهولة عن طريق بدء عملية فحص بينما تقوم تطبيق بإجراء عمليات IO من نوع nowait على نفس المصفوفة. يؤدي هذا إلى حالة توقف (deadlock) بسبب انخفاض قيمة nr_pending (underflow)، مما يتسبب في تعطل خيط إعادة المزامنة md resync في انتظار أن تصبح nr_pending مساوية لـ 0.

إخراج حالة r10conf للمصفوفة عند حدوث هذه الحالة:

crash> struct r10conf barrier = 1, nr_pending = {
counter = -41 }, nr_waiting = 15, nr_queued = 0,

مثال على خيط md_sync العالق في انتظار raise_barrier() وطلبات أخرى عالقة في wait_barrier():

md1_resync [] raise_barrier+0xce/0x1c0
[] raid10_sync_request+0x1ca/0x1ed0
[] md_do_sync+0x779/0x1110
[] md_thread+0x90/0x160
[] kthread+0xbe/0xf0
[] ret_from_fork+0x34/0x50
[] ret_from_fork_asm+0x1a/0x30

kworker/u1040:2+flush-253:4 [] wait_barrier+0x1de/0x220
[] regular_request_wait+0x30/0x180
[] raid10_make_request+0x261/0x1000
[] md_handle_request+0x13b/0x230
[] __submit_bio+0x107/0x1f0
[] submit_bio_noacct_nocheck+0x16f/0x390
[] ext4_io_submit+0x24/0x40
[] ext4_do_writepages+0x254/0xc80
[] ext4_writepages+0x84/0x120
[] do_writepages+0x7a/0x260
[] __writeback_single_inode+0x3d/0x300
[] writeback_sb_inodes+0x1dd/0x470
[] __writeback_inodes_wb+0x4c/0xe0
[] wb_writeback+0x18b/0x2d0
[] wb_workfn+0x2a1/0x400
[] process_one_work+0x149/0x330
[] worker_thread+0x2d2/0x410
[] kthread+0xbe/0xf0
[] ret_from_fork+0x34/0x50
[] ret_from_fork_asm+0x1a/0x30

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

مسؤول

Linux

حجز

13/05/2026

إفشاء

27/05/2026

الاعتدال

تمت الموافقة

إدخال

VDB-366282

EPSS

0.00032

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to know what is going to be exploited?

We predict KEV entries!