
إثبات المفهوم لـ CVE-2024-52005: حقن تسلسلات الهروب ANSI في Git. يوضح ادعاءات VEX غير الصحيحة 'not_affected' في صور الحاويات المحصّنة.
يحتوي هذا المستودع على إثبات مفهوم (PoC) يوضح CVE-2024-52005، وهي ثغرة في Git تسمح بحقن تسلسلات هروب ANSI عبر قناة sideband أثناء عمليات Git.
CVE-2024-52005 هي ثغرة عالية الخطورة (CVSS 7.5) تؤثر على إصدارات Git الأقدم من 2.48.1 و2.47.3 و2.46.5 و2.45.4 و2.44.3.
تم إنشاء إثبات المفهوم هذا لإظهار أن بعض صور الحاويات المحصّنة تدّعي بشكل غير صحيح حالة "not_affected" في مستندات VEX (Vulnerability Exploitability eXchange) الخاصة بها، على الرغم من أنها تشحن إصدارات Git معرّضة للخطر.
تسمح الثغرة للمهاجمين بـ:
اختبر مباشرةً ضد حاوية DHI ArgoCD باستخدام مستودع GitHub هذا:
docker run --rm -it dhi.io/argocd:3 sh -c '
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git /tmp/poc &&
cd /tmp/poc &&
sh docker-test.sh
'
يقوم هذا الأمر بـ:
إذا رأيت ^[[31m أو ^[[32m في المخرجات، فالثغرة مؤكدة.
استنسخ المستودع وشغّل الاختبار محليًا:
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git
cd cve-2024-52005-poc
./test_ansi_injection.sh
يقوم هذا السكربت بـ:
# Create malicious repository with social engineering payload
./exploit_cve_2024_52005.py create social_engineering
# Test against vulnerable container
./exploit_cve_2024_52005.py test
# View results
cat -v /tmp/cve-2024-52005-output.log
ينشئ المهاجم مستودع GitHub عامًا → يستنسخه ArgoCD تلقائيًا →
يحقن خطاف Git أكواد ANSI → يخفي بابًا خلفيًا في سجلات النشر
يستنسخ المطوّر المستودع → يعمل الخطاف الخبيث → يحقن "Build PASSED" مزيفًا →
تُخفى الإخفاقات الحقيقية → يُنشر الكود المعرّض للخطر إلى الإنتاج
يستنسخ ماسح الأمان المستودع → يحقن الخطاف أكواد ANSI →
يعرض "0 vulnerabilities" → تُخفى الثغرات الحقيقية →
يجتاز الكود الخبيث المراجعة
يتضمن الإطار 8 حمولات هجومية جاهزة مسبقًا:
تدّعي العديد من صور الحاويات أنها "not_affected" تجاه CVE-2024-52005 مع التبرير:
{
"justification": "vulnerable_code_cannot_be_controlled_by_adversary"
}
هذا غير صحيح بالنسبة للحاويات المصممة لاستنساخ مستودعات غير موثوقة:
يمتلك المهاجم بالفعل السيطرة على مسار الكود المعرّض للخطر عبر خطافات Git ورسائل sideband.
إصدارات Git المتأثرة بـ CVE-2024-52005:
حدّث إلى إصدار مصحّح:
# Check your version
git --version
# Update via package manager
apt update && apt upgrade git # Debian/Ubuntu
brew upgrade git # macOS
إذا لم تتمكن من التحديث فورًا:
# Test any container image
docker run --rm -v $(pwd)/ansi-test-repo:/repo:ro YOUR_IMAGE:TAG \
sh -c 'git clone /repo /tmp/test 2>&1' | cat -v
# Look for ANSI codes like ^[[31m in the output
تم إنشاء إثبات المفهوم هذا من أجل:
للاستخدام في الاختبارات الأمنية المصرح بها فقط. لا تستخدم هذا ضد أنظمة لا تملكها أو ليس لديك إذن باختبارها.
رخصة MIT - راجع ملف LICENSE للتفاصيل
أُنشئ كجزء من أبحاث أمان صور الحاويات، لإظهار أهمية الإفصاح الدقيق عن الثغرات وتقييمها.
وجدت مشكلة أو لديك تحسينات؟ نرحب بطلبات السحب (Pull Requests)!