
إثبات محلي للمفهوم (PoC) لـ CVE-2026-54686 يوضح تزوير خطاف دورة حياة DCS في محطة Warp. يحاكي قبول CWD وبيانات SSH المزورة في النماذج الضعيفة، مع رفض النموذج الثابت.
هذا المستودع هو PoC محلي آمن لـ CVE-2026-54686 استنادًا إلى نشرة Warp العامة GHSA-9w2v-jhww-vm85.
الإصدارات السابقة من Warp لم تتحقق مما إذا كانت بعض خطافات دورة حياة DCS التي تغير الحالة القادمة من تيار PTY قد أُرسلت من تكامل شل Warp للجلسة الحالية. إذا تمكن المهاجم من جعل الضحية تعرض مخرجات طرفية يتحكم بها المهاجم على Warp، فيمكنه تزوير بيانات وصفية محددة لدورة الحياة، مما قد يؤثر على البيانات الوصفية المرتبطة بالكتلة النشطة أو جلسات SSH.
لا يتصل هذا PoC بـ Warp أو خوادم SSH، ولا ينفذ أوامر عشوائية. يقوم بتوليد وتحليل خطافات DCS JSON شبيهة بـ Warp محليًا، ويظهر أنه في النموذج قبل التصحيح، تنعكس CWD وبيانات SSH الوصفية المزيفة، بينما في النموذج المصحح، يتم رفض خطافات تغيير الحالة التي تحتوي على session_id غير مسجل.
هذا المشروع مخصص للأغراض التعليمية والتحقق الأمني الأخلاقي فقط. لا تستخدمه للاختبار أو الهجوم في بيئات غير مصرح بها.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L)>= v0.2021.04.25.23.05.stable_00v0.2026.05.06.15.42.stable_01إذا نجح الهجوم، فقد يتعامل Warp مع المسار الذي يختاره المهاجم كـ CWD للجلسة النشطة. قد يؤثر ذلك على الوظائف التي تستخدم المسار والسياق وسلوك الجلسة بناءً على CWD.
أيضًا، إذا تم تزوير البيانات الوصفية لدورة حياة SSH، فقد يتم تحديث البيانات الوصفية للنقل لجلسة SSH التي يحتفظ بها Warp بقيم يتحكم بها المهاجم.
يرسل تكامل شل Warp خطافات دورة الحياة مثل Precmd, CommandFinished, InputBuffer, SSH إلى العميل باستخدام تسلسلات DCS الطرفية. في التنفيذ قبل التصحيح، كان هناك نقص في التحقق من التكامل لبعض خطافات تغيير الحالة: هل يحتوي الخطاف على session_id تم إنشاؤه بواسطة عميل Warp ومسجل لتلك الجلسة؟
في التصحيح، يتم حقن session_id غير صفري من إنشاء العميل في سكريبت التمهيد، ويتم رفض خطافات DCS التي تغير الحالة إذا كان session_id الخاص بها غير مسجل. بالنسبة لـ SSH wrapper، تم تعديله أيضًا لمصادقة خطاف SSH المحلي، وتسجيل معرف الجلسة البعيد الذي أنشأه العميل، ثم حقنه في التمهيد البعيد.
يتطلب Python 3.
python3 --version
python3 poc.py
النتائج المتوقعة:
[!] VULNERABLE: spoofed cwd was accepted.
[!] VULNERABLE: spoofed ssh metadata was accepted.
python3 poc.py --mode fixed
النتائج المتوقعة:
[+] FIXED: spoofed cwd was rejected.
[+] FIXED: spoofed ssh metadata was rejected.
python3 poc.py --case cwd
python3 poc.py --case ssh
عند إضافة --show-stream، سيتم عرض تيار DCS الشبيه بـ Warp المولد بتنسيق repr() في Python. لن يتم إخراج تسلسلات تحكم خام إلى الطرفية.
قم بالتحديث إلى v0.2026.05.06.15.42.stable_01 أو أحدث. تشير النشرة العامة إلى أنه لا يوجد حل بديل كامل بخلاف التحديث.