
إشعار مُنقّح بخصوص CVE-2025-51846 الذي يؤثّر على معالجة WebSocket في CryptPad.
الخطورة: عالية (CVSS 7.5)
CWE: 400 – الاستهلاك غير المتحكم فيه للموارد (استنفاد الموارد)،
CWE: CWE-770 – تخصيص الموارد دون حدود أو تحديد
الحالة: مُصلَح
الإصدار المتأثر المؤكد: CryptPad 2025.3.1
النطاق المتأثر في مسودة CSAF: >=2025.3.1, <2026.2.1
ملاحظة الإصدار المُصلَح: تشير مسودة المنسّق حاليًا إلى 2026.2.1. وقد أوضحت CryptPad لاحقًا أن 2026.2.2 هو الإصدار المُصلَح الفعلي الجيد بسبب مشكلة في الإصدار 2026.2.1. يجب على المشغّلين تأكيد الإصدار المُصلَح النهائي في نصيحة CISA المنشورة وملاحظات إصدار CryptPad.
image
فرض تنفيذ WebSocket في CryptPad حدودًا على الإطارات الفردية، لكنه لم يفرض بشكل كافٍ حدودًا تراكمية على كمية البيانات وعدد الأجزاء التي تتم معالجتها لكل اتصال.
وفقًا لمعيار RFC 6455، يمكن تقسيم رسالة WebSocket عبر إطارات متعددة. في الإصدارات المتأثرة، قد تتسبب الإطارات الصالحة المتكررة أو الرسائل المجزأة في استهلاك مفرط لموارد الخادم.
يمكن لمهاجم خارجي غير مصادَق استغلال هذا السلوك لتدهور الخدمة أو رفضها للمستخدمين الشرعيين. في الاختبارات، أدى ذلك إلى ارتفاع استخدام وحدة المعالجة المركزية والذاكرة، وعدم استجابة واجهة CryptPad، وفشل تحميل المستندات/الجلسات، وإنهاء الخدمة تحت الحمل العالي.
image
تنتج المشكلة عن عدم كفاية المحاسبة التراكمية للموارد في مسار معالجة WebSocket. في حين أن الإطارات الفردية قد تخضع لفحوصات الحجم، لا يزال الخادم يعالج الإطارات الصالحة المتكررة أو الأجزاء دون حد تراكمي فعّال لكل اتصال.
في الاختبارات المعملية، تم استخدام عدة أنماط لحركة مرور WebSocket لا تبدو خبيثة للتحقق من المشكلة:
أظهرت هذه الاختبارات أن CryptPad استمر في استهلاك الموارد أثناء معالجة حركة مرور تبدو صالحة بشكل فردي. تحت الحمل المختبري الأثقل، أصبحت الخدمة غير متاحة وأظهرت سجلات النظام إنهاء العملية بسبب استنفاد الذاكرة.
نصوص اختبار الإجهاد الكاملة غير منشورة لتجنب تمكين إساءة الاستخدام ضد نسخ CryptPad الإنتاجية.
image
تتضمن هذه النصيحة عمدًا وصفًا غير مسلح لطريقة إعادة الإنتاج فقط.
على مستوى عالٍ، يمكن إعادة إنتاج المشكلة في مختبر خاضع للتحكم من خلال:
لا يتضمن النصيحة أي استغلال عام أو سكربت فيضان.
image
يمكن للمهاجم بالتالي فتح اتصال WebSocket وإرسال مئات أو حتى آلاف الإطارات (كل منها ضمن حد الحجم المسموح به)، حتى يقوم الخادم بتخزين ومعالجة كمية هائلة من البيانات مؤقتًا. على الرغم من أن كل إطار يبدو "قانونيًا" بمفرده، فإن التأثير التراكمي هو استهلاك ذاكرة الخادم ووحدة المعالجة المركزية في معالجة كل جزء.
قد يقوم مهاجم خارجي غير مصادَق بـ:
image
>=2025.3.1, <2026.2.11e0c06ad8a0c5dab795f85f9730ec2693320c62eimage
يجب على المشغّلين الترقية إلى إصدار CryptPad المُصلَح المحدد في النصيحة النهائية من CISA وملاحظات إصدار CryptPad.
تشمل تدابير التخفيف الإضافية للدفاع المتعمق:
image
أقرّت CryptPad حالة رفض الخدمة. صرّح المورّد بأن التدابير المضادة قد نُفّذت بالفعل على جانب nginx للنسخة الرئيسية، وأن تغييرات إضافية كانت تُضاف إلى مثال الإعدادات ومنطق الخادم. كما أشارت CryptPad إلى إعادة هيكلة أوسع للخادم تهدف إلى تضمين هذه التدابير المضادة.
قدّمت CryptPad لاحقًا PR #2239 كمرجع الإصلاح العام، وأوضحت أن إصدار الإصلاح المصحح هو 2026.2.2، بعد مشكلة الإصدار في 2026.2.1.
image
تصنف هذه المشكلة بشكل صحيح على أنها ثغرة رفض خدمة عالية الخطورة. لا يتطلب الهجوم مصادقة ويمكن أن يتسبب في عدم توافر الخدمة بالكامل من خلال استنفاد موارد الخادم عبر أنماط حركة مرور WebSocket الصالحة.
image
أُجريت الاختبارات فقط في بيئات خاضعة للتحكم. لا تتضمن هذه النصيحة سكربتات فيضان مسلحة أو أدوات إعادة إنتاج كاملة.
image
John Perifanis
باحث أمني
للتواصل: https://www.linkedin.com/in/ioannis-p-9081842b9