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

الملخص

بحسب VulDB • 03/11/2026

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

io_uring/waitid: منع تجاوز عداد الإلغاء (cancel reference wrap)

تقوم io_waitid بتعبئة حالة الإلغاء في البت 31 من ->refs وتستخدم البتات 30:0 كعداد مرجعي (reference counter) مكون من 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() عند تعيين علم الإلغاء (cancel flag) وفحص قيمة العلم القديمة. تستمر أول محاولة إلغاء في زيادة الملكية الموجودة، مما يحافظ على دلالات التنبيه (wake) وتسليم المُصدر (issuer handoff). ترى المحاولات اللاحقة علم الإلغاء وتُرجع دون زيادة الحقل المرجعي.

يجعل هذا محاولات الإلغاء الفاشلة المتكررة ذاتية التلاشي (idempotent) مع ترك انتقالات حالة "الإلغاء الأول" دون تغيير.

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

25/09/2026

إفشاء

02/11/2026

الاعتدال

تمت الموافقة

إدخال

VDB-429903

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!