Skip to content
KitploitKITPLOIT
أدواتالمدونة
Log in
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-21668-Pipenv-RCE-vulnerability — تحليل مفصل لـ CVE-2022-21668، ثغرة RCE حرجة في تحليل Pipenv لملف requirements.txt، بما في ذلك كود الثغرة، آليات الاستغلال، والتحقق من التصحيح. | Kitploit
أدوات/GitHubGitHub/sreeram281997/cve-2022-21668-pipenv-rce-vulnerability
تحليل الثغرات الأمنيةالاستغلالأمن الويبأمن سلسلة التوريدالأوراق والأبحاثالتعلم والتعليم
GitHubsreeram281997/cve-2022-21668-pipenv-rce-vulnerability

CVE-2022-21668-Pipenv-RCE-vulnerability

تحليل مفصل لـ CVE-2022-21668، ثغرة RCE حرجة في تحليل Pipenv لملف requirements.txt، بما في ذلك كود الثغرة، آليات الاستغلال، والتحقق من التصحيح.

عرض المستودع
1110منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2022-21668-Pipenv-RCE-ثغرة

1. مقدمة

في هذه الوثيقة، تتم مناقشة ثغرة Pipenv (CVE-2022-21668) بالتفصيل. تغطي الأقسام التالية رمز الخلل في ملف pipenv/utils.py الذي يفتح الباب أمام هجمات RCE المختلفة، وكذلك الإصلاح الأخير الذي يتحقق من اتصال SSL/TLS ويتحقق من اسم المضيف مقابل قائمة المضيفين الموثوقين.

1.1. عنصر القائمة

Pipenv Pipenv هي أداة تقوم تلقائيًا بإنشاء وإدارة بيئة افتراضية (virtualenv) لمشاريعك، بالإضافة إلى إضافة/إزالة الحزم من ملف Pipfile الخاص بك أثناء تثبيت/إلغاء تثبيت الحزم.

لمزيد من المعلومات انقر هنا

1.2 requirements.txt

نحتاج إلى ملف requirements.txt كلما كنا نتعامل مع أنظمة معقدة. يأتي هذا الملف النصي أيضًا في متناول اليد عندما نريد نقل التطبيق إلى بيئة أخرى. يحتوي هذا الملف على جميع الحزم/التبعيات المطلوبة لتشغيل التطبيق بنجاح بالإضافة إلى أرقام الإصدارات الخاصة بها.

ملف requirements.txt نموذجي:

نموذج requirements

مصدر الصورة: https://www.idkrtm.com/what-is-the-python-requirements-txt/

إذا لم يكن لدينا ملف requirements.txt، فقد لا يكون من الممكن نقل تطبيقنا بنجاح إلى نظام آخر، حيث قد تكون هناك مشكلة توافق بين إصدارات الحزم.

2. CVE-2022-21668

بدءًا من إصدار Pipenv 2018.10.9 وقبل الإصدار 2022.1.8، يسمح عيب في تحليل pipenv لملفات المتطلبات للمهاجم بإدراج سلسلة مصممة خصيصًا داخل تعليق في أي مكان داخل ملف requirements.txt، مما يؤدي إلى قيام الضحايا الذين يستخدمون pipenv لتثبيت ملف المتطلبات بتنزيل التبعيات من خادم فهرس حزم يتحكم فيه المهاجم. هجوم RCE ممكن جدًا ضد هذه الأنظمة شديدة الضعف.

تضع cvedetails هذه الثغرة على أنها حرجة / شديدة.

درجة CVSS من cvedetials: درجة CVSS (المصدر: https://www.cvedetails.com/cve/CVE-2022-21668/)

3. خلل الكود

خلل CVE-2022-21668 يتم استدعاء هذه الدالة بشكل متكرر على كل سطر من ملف المتطلبات، وتستخدم وحدة argparse للعثور على الخيارات --index-url و --extra-index-url و --trusted-host ومعالجتها. ومع ذلك، فإنها لا تتجاهل هذه الخيارات عند ظهورها في التعليقات. المشكلة في الكود هي أنه سيقوم بتحليل السلاسل التي تبدأ بـ "--index-url، --extra-index-url، و --trusted-host" في أي مكان في الملف. هذه الوظيفة تجعله أكثر ضعفًا. لمزيد من المعلومات انقر هنا

4. استغلال RCE

هجمات تنفيذ التعليمات البرمجية عن بُعد (RCE) تسمح للمهاجم بتنفيذ تعليمات برمجية ضارة عن بُعد على جهاز كمبيوتر. يمكن أن يتراوح تأثير ثغرة RCE من تنفيذ البرامج الضارة إلى حصول المهاجم على سيطرة كاملة على جهاز تم اختراقه.

إذا تمكن المهاجم من إخفاء خيار --index-url ضار في ملف متطلبات يقوم الضحية بتثبيته باستخدام pipenv، فيمكن للمهاجم تضمين تعليمات برمجية ضارة عشوائية في الحزم المقدمة من خادم الفهرس الضار الخاص به والتي سيتم تنفيذها على مضيف الضحية أثناء التثبيت (تنفيذ تعليمات برمجية عن بُعد/RCE). سيكون الاستغلال باستخدام هذه التقنية بسيطًا نسبيًا بالنسبة للمهاجم الذي لديه معرفة أساسية بلغة Python، حيث يمكن للمهاجم ببساطة بناء توزيعة مصدرية لأي من الحزم المحددة في ملف المتطلبات، وتضمين تعليمات برمجية ضارة عشوائية في ملف setup.py. عندما يقوم pip بالتثبيت من توزيعة مصدرية، يتم تنفيذ أي كود في ملف setup.py بواسطة عملية التثبيت.

لمزيد من التفاصيل انقر هنا

5. الإصلاح

الإصدار 2022.1.8 وما فوق يحتوي على هذا الإصلاح. تمت إضافة دالة جديدة “get_host_and_port(url)” في ملف pipenv/utils.py. تقوم هذه الدالة باسترداد المضيف والمنفذ لعنوان URL المقدم في ملف requirements.txt. يتم تحليل عنوان المضيف المسترد باستخدام urllib3 الذي يتحقق داخليًا من اتصال SSL/TLS. كما يتم التحقق من عنوان المضيف مقابل قائمة بعناوين المضيفين الموثوقين. إصلاح CVE-2022-21668 مزيد من المعلومات هنا

6. التأثير

قد تستخدم الهجمات الأساسية RCE الأولي الذي يتم تشغيله عندما يقوم الضحية بتثبيت الحزمة الضارة للمهاجم لسرقة بيانات الاعتماد من مضيف الضحية، أو استنزاف موارد المضيف لتعدين العملات المشفرة، أو تثبيت مجموعات الاستغلال أو البرامج الضارة الأخرى. قد يستخدم المهاجمون الأكثر تطورًا تقنيات أكثر تقدمًا للحفاظ على الوصول إلى مضيف الضحية، أو إخفاء أو إزالة أدلة هجومهم عن طريق حذف المراجع إلى خادم الفهرس الضار في ملفات Pipfile و Pipfile.lock التي تم إنشاؤها بواسطة pipenv أو مؤشرات الاختراق المحتملة الأخرى. قد يحاول المهاجمون ذوو المهارات العالية الانتقال إلى أهداف إضافية من المضيف المخترق الأولي، وقد يستفيدون من أي بيانات اعتماد مكشوفة في بيئة المضيف المخترق أو التفويض الضمني الممنوح للمضيف للحصول على وصول مميز إلى أنظمة أو موارد أخرى، مثل مستودعات المصادر أو سجلات الحزم. (المصدر: https://github.com/pypa/pipenv/security/advisories/GHSA-qc9x-gjcv-465w)

7. ملخص

  • خطأ في التحليل لا يأخذ في الاعتبار تحليل التعليقات بشكل صحيح، أدى إلى ثغرة حرجة.

  • عنصر قائمة مع وجود مثل هذه الثغرة في متناول اليد، حتى إعداد خادم الفهرس الضار لتقديم إصدارات الحزم المخترقة هو أمر بسيط نسبيًا، حتى بالنسبة لمهاجم غير متطور.

موارد إضافية

  • FEDORA FEDORA-2022-508e460384
  • FEDORA FEDORA-2022-77ce20f03a
  • دمج طلب السحب من GHSA-qc9x-gjcv-465w
  • الإصدار الثابت
  • تحليل ملفات متطلبات Pipenv يسمح بعنوان URL فهرس ضار في التعليقات
تنزيل الأداة