مستغلة: 178
الأحدثCVE-2026-115732 — تجاوز تفويض اسم الشهادة
VulnFeed.org
AREN
7.8
CVE-2026-99227تحقق من التصحيح

io_uring/waitid: منع التفاف مرجع إلغاء الطلب

Linux Linuxقراءة 1 داقرأ بلغة

ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.

الملخص

في نواة Linux، تم حل الثغرة التالية: io_uring/waitid: منع التفاف مرجع إلغاء الطلب. تقوم io_waitid بتعبئة حالة الإلغاء في البت 31 من ->refs وتستخددم البتات 30:0 كعداد مراجع مكون من 31 بت: #define IO_WAITID_CANCEL_FLAG BIT(31) #define IO_WAITID_REF_MASK GENMASK(30, 0). تقوم __io_waitid_cancel() بتحديد الطلب كملغى، ثم تزيد البتات السفلى من ->refs للمطالبة بملكية الإكمال. عندما يمتلك مسار آخر الطلب، تظل الزيادة على الرغم من إرجاع الإلغاء القيمة false. يظل الطلب قابلاً للاكتشاف بواسطة الإلغاء، لذا فإن المحاولات الفاشلة المتكررة يمكن أن تلف حقل المراجع المكون من 31 بت إلى الصفر. يمكن لإلغاء لاحق المطالبة بالملكية وإكمال الطلب للمرة الثانية. استخدم atomic_fetch_or() عند تعيين علامة الإلغاء وفحص قيمة العلامة القديمة. تستمر محاولة الإلغاء الأولى إلى زيادة الملكية الحالية، مع الحفاظ على دلالات التنبيه وتسليم الجهة المصدرة. ترى المحاولات اللاحقة علامة الإلغاء وتعود دون زيادة حقل المراجع. هذا يجعل محاولات الإلغاء الفاشلة المتكررة متساوية التكافؤ (idempotent) مع إبقاء انتقالات حالة الإلغاء الأولى دون تغيير.

المعالجة

المراجع

Esc