CVE-2023-52636 in Linux
الملخص
بحسب VulDB • 31/05/2026
في نواة لينكس، تم حل الثغرة التالية:
libceph: الانتظار فقط لتوفر المزيد من البيانات على المقبس (socket)
قد يحدث قراءة جزئية (short read) أثناء قراءة تذييل الرسالة من المقبس. لاحقاً، عندما يصبح المقبس جاهزاً لقراءة أخرى، يستدعي المراسل (messenger) جميع معالجات read_partial_*()، بما في ذلك read_partial_sparse_msg_data(). التوقع هو أن تقوم read_partial_sparse_msg_data() بإنهاء العملية (bail)، مما يسمح للمراسل باستدعاء read_partial() لتذييل الرسالة والاستئناف من حيث توقف.
ومع ذلك، تنتهك read_partial_sparse_msg_data() هذا الافتراض وتنتهي باستدعاء آلة الحالة (state machine) في عميل OSD. تفترض آلة حالة القراءة المتفرقة (sparse-read) أنها عملية جديدة وتفسر جزءاً من تذييل الرسالة على أنه رأس القراءة المتفرقة، مما يؤدي إلى إرجاع أطوال بيانات/امتدادات (extents/data length) غير صحيحة، وما إلى ذلك.
لتحديد ما إذا كان ينبغي لـ read_partial_sparse_msg_data() إنهاء العملية، دعنا نعيد استخدام cursor->total_resid. لأنه بمجرد وصوله إلى الصفر، فهذا يعني أن جميع الامتدادات والبيانات قد تم استلامها بنجاح في القراءة الأخيرة، وإلا يمكنه الخروج عند القراءة الجزئية لأي من الامتدادات أو البيانات. ثم يمكن لـ osd_sparse_read() الاستئناف من حيث توقف.
[ idryomov: سجل التغييرات (changelog) ]
VulDB is the best source for vulnerability data and more expert information about this specific topic.