
رحلة ثغرة أمنية موثقة لـ CVE-2025-8110 (Gogs) و CVE-2025-3248 (Langflow) — تقييم المخاطر، التحقق من قابلية الاستغلال، التصحيحات الموثقة.
ملخص للمدراء التنفيذيين: انظر DEMO-WALKTHROUGH.md — قراءة كاملة للعرض التوضيحي في 8 دقائق مع أمثلة من مخرجات المُحقق، بدون حاجة للتنفيذ.
يُظهر هذا المستودع رحلة ثغرات أمنية موثقة من البداية إلى النهاية لثغريتي تنفيذ أوامر عن بُعد حقيقيتين تم الكشف عنهما علنًا — مرورًا بكل CVE عبر أربعة مخرجات موجهة للعملاء.
| CVE | المنتج | التصنيف | الخطورة |
|---|---|---|---|
| CVE-2025-8110 | Gogs ≤ 0.13.3 | RCE عبر مسار الروابط الرمزية (يتطلب مصادقة) | عالية (CVSS 8.7) |
| CVE-2025-3248 | Langflow < 1.3.0 | RCE عبر exec في بايثون بدون مصادقة | حرجة (CVSS 9.8) |
كلا الثغرتين لهما استغلال مُشاهَد في البرية (Supershell C2 لـ Gogs، وFlodrix botnet لـ Langflow). كلاهما موجودان في كتالوج CISA KEV — CVE-2025-3248 (أُضيف 2025-05-05) وCVE-2025-8110 (أُضيف 2026-01-12). كلاهما يسبق هذا العرض التوضيحي بأشهر — ليست نظرية.
تم اختيار الزوجين تحديدًا لاختبار أسطح متكاملة:
عامل التصحيح (ونموذج المخاطر) الذي يتعامل مع كلاهما يقوم بعمل حقيقي.
.
├── README.md # هذا الملف
├── attachments/ # تقارير التقييم القانونية ذات العلامة التجارية HTML
│ ├── CVE-2025-8110.html
│ └── CVE-2025-3248.html
├── harbor-tasks/ # تصل عبر طلبات السحب لكل CVE (انظر المشكلات #1, #2)
│ ├── CVE-2025-8110/
│ │ ├── ground_truth/fix.patch # منبع 553707f3 كما هو
│ │ ├── healthcheck.json # مواصفات بوابة القبول
│ │ └── harbor/
│ │ ├── environment/Dockerfile # مرحلة التبعيات debian:bookworm-slim + Go 1.21
│ │ ├── instruction.md # موجز مهمة الوكيل (منقح)
│ │ ├── task.toml # واصف مهمة Harbor
│ │ └── tests/ # نص المُحقق والمكافأة
│ └── CVE-2025-3248/
│ └── ... (نفس الشكل، قاعدة python:3.13-slim-bookworm)
└── vulnerable/ # أشجار فرعية من المنبع للقراءة فقط (مضغوطة)
├── gogs/ # gogs/gogs @ v0.13.3
└── langflow/ # langflow-ai/langflow @ 1.2.0
لكل CVE، بعد دمج طلب السحب المقابل:
cd harbor-tasks/CVE-XXXX/docker build -t cve-xxxx-env -f harbor/environment/Dockerfile harbor/environment/bash harbor/tests/test.sh → reward=0.0 (يتم تفعيل الاستغلال)git apply ground_truth/fix.patch، ثم أعد تشغيل bash harbor/tests/test.sh → reward=1.0reward=1.0 هي بوابة القبول: الثغرة مُصحّحة واختبار الانحدار الوظيفي لا يزال ناجحًاقسم تقييم FAIR في كل نص مشكلة يحمل سجل محادثة الوكيل القابل للتحقق (VACR) موقع عبر COSE_Sign1 / Ed25519 (IETF RFC 9052). المفتاح العام هو VAC_SIGNING_PUBKEY؛ الحمولة الموقعة تحدد الشخصية، النموذج، تجزئات محتوى القطع الأثرية الخام، وأحكام لجنة المراجعة التي أنتجت كل صف.
healthcheck.json في كل مهمة Harbor مُوسَم حاليًا بـ PENDING_DOCKER_VALIDATION — أشجار ملفات المُحقق كاملة هيكليًا، مع توصيل الإصلاح القانوني من المنبع، ولكن التحقق من البداية إلى النهاية docker build + حلقة المكافأة لم يتم تنفيذها بعد ضد هذه السقالات المحددة. كتلة operator_validation_steps في كل healthcheck تحدد الأوامر الدقيقة التي يشغلها المستلم لإغلاق البوابة. التوصيل الإنتاجي للمحقق المباشر وحلقة التصحيح المُوثقة تصل في التكرار التالي.
لم يكن هذا العرض التوضيحي ليكون لولا الباحثين الذين كشفوا عن الثغرات أصلاً:
جميع الكود المصدري تحت vulnerable/ ينتمي إلى مشروعه المنبع الخاص ويخضع لتراخيصه.
| # | المخرج | مكان وجوده في هذا المستودع |
|---|
| 1 | تقرير الثغرة — ملخص الإفصاح الأصلي، الخطورة، المراجع، مؤشرات الاختراق | القسم العلوي في نص المشكلة على GitHub |
| 2 | تقييم الأعمال والامتثال وفق FAIR — تقدير تجاوز الخسارة وفق Open FAIR §14 مع أحكام لجنة المراجعة؛ مرفق HTML ذو العلامة التجارية القانوني | قسم "FAIR business and compliance triage" في نفس نص المشكلة + ملف HTML مجاور في attachments/ |
| 3 | مُحقق الاستغلال — حاوية قابلة لإعادة الإنتاج تُفعِّل الثغرة بشكل حتمي (مهمة Harbor: تعليمات، بيئة، اختبارات، نص المكافأة) | طلب السحب لهذا المستودع لتلك CVE، تحت harbor-tasks/CVE-*/harbor/ |
| 4 | التصحيح الموثَّق — commit الإصلاح من المنبع كما هو مطبَّق عبر المُحقق؛ المكافأة 1.0 = الثغرة مُصحّحة والانحدار الوظيفي سليم | نفس طلب السحب، harbor-tasks/CVE-*/ground_truth/fix.patch |