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

الملخص

بحسب VulDB • 11/08/2026

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

ceph: إصلاح قراءة خارج الحدود قبل المصادقة على snaptrace في دالة ceph_handle_caps()

تقوم الدالة `ceph_handle_caps()` بقراءة قيمة `snap_trace_len` من رأس الرسالة `ceph_mds_caps` بتنسيق السلك (wire-format)، وتستخدمها بشكل غير مشروط لبناء مؤشر نهاية مزيف (`snaptrace + snaptrace_len`) الذي يُمرر لاحقاً إلى دالة `ceph_update_snap_trace()` في حالة `CEPH_CAP_OP_IMPORT`:

snaptrace = h + 1; snaptrace_len = le32_to_cpu(h->snap_trace_len); p = snaptrace + snaptrace_len; ... case CEPH_CAP_OP_IMPORT: if (snaptrace_len) {
... if (ceph_update_snap_trace(mdsc, snaptrace, snaptrace + snaptrace_len, false, &realm)) { ... }

ثم تقوم الدالة `ceph_update_snap_trace()` بفك تشفير بنية `struct ceph_mds_snap_realm` من `snaptrace` باستخدام دالة المساعدة `ceph_decode_need(&p, e, sizeof(*ri), bad)` مع نهاية مزيفة مُزودة بواسطة المهاجم حيث `e == snaptrace + snaptrace_len`. وبفضل قيمة `snap_trace_len == 0xFFFFFFFF`، يتم استيفاء فحص الحدود بسهولة تامة، مما يؤدي إلى قراءة `ri = p` لمساحة مقدارها `sizeof(struct ceph_mds_snap_realm)` بعد مخزن البيانات الأمامي (`msg->front buffer`) الشرعي. ثم تقود القيمتان `ri->num_snaps` و `ri->num_prior_parent_snaps` إلى قراءات إضافية خارج الحدود لمصفوفات snap المشفرة.

تلتقط كتل فك التشفير الـ 11 الخاصة بـ `msg_version >= 2 .. msg_version >= 12` المذكورة أعلاه قبل تبديل العمليات (op switch) هذه القراءة الخارجة عن الحدود (OOB) من خلال دوال المساعدة الخاصة بها `ceph_decode_*_safe()` / `ceph_decode_need()`. ومع ذلك، فهي تقع خلف شرط مشروط بإصدار الرأس (`hdr.version-gated if`)، لذا فإن خادم MDS الخبيث أو المخترق الذي يضبط `msg->hdr.version = 1` يصل إلى مسار IMPORT دون أن تقوم أي دالة فك تشفير مقيدة بالإصدار بالتحقق من صحة `snap_trace_len`. كان هذا الشكل موجوداً منذ إدخال الدالة `ceph_handle_caps()`.

التحقق من صحة `snap_trace_len` مقابل مخزن البيانات الأمامي للرسالة قبل استهلاكه، باستخدام دوال المساعدة القياسية `ceph_decode_need()` / `ceph_has_room()`. تحدد هذه الدوال نطاق الطول عن طريق الطرح (`n <= end - p`)، المحمي بشرط `end >= p` بدلاً من إضافة المؤشرات، مما يجعلها آمنة ضد تجاوز السعة (wrap-safe) لطول u32 الذي يتحكم فيه المهاجم في عمليات البناء 32-بت حيث يمكن أن يؤدي `p + snap_trace_len` إلى تجاوز مساحة العنوان. وهذا يتوافق مع باقي مسار فك تشفير ceph (على سبيل المثال، فحص `pool_ns_len` بعد بضع أسطر)، ويغطي المسار الحالي لـ `goto bad cleanup` هذا المخرج بالفعل.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Linux

حجز

30/07/2026

إفشاء

10/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-387511

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Interested in the pricing of exploits?

See the underground prices here!