أظهر باحثو Noma Security أن مجرد فتح قضية عامة (Public Issue) على مستودع مفتوح يمكن أن يخدع GitHub Agentic Workflows ويؤدي إلى تسريب محتويات مستودعات خاصة داخل المؤسسة، دون الحاجة إلى بيانات اعتماد مسروقة أو وصول مباشر. هذه التقنية أطلق عليها اسم GitLost، وتكشف عن ثغرة هيكلية في طريقة عمل الوكلاء المدعومين بالذكاء الاصطناعي داخل بيئة GitHub.
كيف تعمل ثغرة GitLost؟
تعتمد الهجمة على أسلوب معروف باسم الحقن غير المباشر عبر الموجهات، حيث لا يستطيع الوكيل التمييز بين التعليمات الصادرة من مالكه والتعليمات المزروعة داخل محتوى يقرأه. في تجربة Noma، صيغت القضية العامة لتبدو كطلب روتيني من نائب مبيعات، لكن بداخلها تعليمات خبيثة. بمجرد أن يقرأ الوكيل القضية، يقوم بسحب محتوى من مستودع خاص (مثل ملف README) ويلصقه في تعليق عام، مما يؤدي إلى تسريب مباشر للبيانات. الأخطر أن الوكيل هنا ليس مجرد نافذة دردشة، بل “فاعل معتمد” يحمل صلاحيات قراءة عبر مستودعات المؤسسة، ما يجعل أي قضية عامة قناة محتملة للتسريب.
لماذا تُعد هذه الثغرة مختلفة؟
بحسب الباحث ساسي ليفي، فإن ما يميز GitLost هو أن المهاجم لا يسيطر فقط على ما يقوله الوكيل، بل على ما يفعله بصلاحياته. الوكيل يمتلك وصولًا واسعًا إلى مستودعات خاصة، يقرأ محتوى غير موثوق من الخارج، ويملك القدرة على نشر تعليقات عامة. هذا ما يُعرف بـ الثلاثية القاتلة: وصول إلى بيانات خاصة، مدخلات غير موثوقة، وقناة إخراج عامة. الجمع بين هذه العناصر يجعل أي وكيل معرضًا للتسريب بمجرد صياغة قضية بذكاء.
سلسلة من الهجمات المشابهة
ثغرة GitLost ليست الأولى من نوعها. فقد سبق أن كشف باحثون عن ثغرات في Claude Code GitHub Action سمحت لقضية خبيثة واحدة بتسريب أسرار ومنح وصول كتابي إلى المستودع. كما أظهرت حملة RoguePilot من Orca Security أن مجرد تعليمات مخفية في قضية يمكن أن تدفع Copilot إلى تسريب رموز وصول حساسة. منذ مايو 2025، أثبتت أبحاث Invariant Labs أن وكلاء GitHub المرتبطين بخوادم MCP يمكن دفعهم لقراءة مستودعات خاصة وتسريبها عبر طلبات دمج، وهو ما وصفوه بأنه “مشكلة معمارية” لا يمكن حلها بترقيع تقني بسيط.
ما الذي يجب فعله الآن؟
أوصت Noma بعدة إجراءات لتقليل المخاطر:
- تقييد نطاق الرموز: يجب أن يُمنح الوكيل صلاحيات قراءة لمستودع واحد فقط، لا المؤسسة بأكملها.
- مراجعة بشرية للمخرجات: لا ينبغي السماح للوكيل بنشر تعليقات عامة دون مراجعة.
- تقييد مصادر الإدخال: يجب تحديد من يمكنه فتح قضايا يتفاعل معها الوكيل.
- عزل معماري: الاعتماد على العزل الهيكلي وصلاحيات محدودة بدلًا من محاولة تصفية الموجهات الخبيثة فقط.
ورغم أن GitHub أضافت خطوات للكشف عن التهديدات قبل نشر المخرجات، فإن تجربة Noma أثبتت أن كلمة واحدة مثل “Additionally” كانت كافية لتجاوز الحاجز. وهذا يعكس أن المشكلة ليست في الفلترة، بل في البنية نفسها: في لغة طبيعية لا يوجد خط فاصل واضح بين “البيانات” و”التعليمات”، ما يجعل الحل الحقيقي قائمًا على التصميم المعماري لا على الترقيع.






























