ترافیک آسیب‌پذیری شدید مسیریابی و دورزدن احراز هویت با request-target مبهم را وصله کرد (CVE-2026-88009)

/images/traefik-cve-2026-88009.png

یک درخواست HTTP/1 می‌تواند origin-form باشد (GET /admin HTTP/1.1) یا شکل rootless/opaque مثل GET http:http://internal-vhost/admin HTTP/1.1. Go دومی را در URL.Opaque می‌گذارد و Path را خالی می‌کند. Traefik بقیهٔ pipeline را روی مسیری می‌بیند که به / نرمال می‌شود؛ همان لحظه reverse proxy همان رشتهٔ مبهم را byte-for-byte به backend می‌فرستد.

۷ سپتامبر ۲۰۲۶ این موضوع با شناسهٔ GHSA-f52w-8j3h-j724 منتشر شد؛ CVE-2026-88009 در ۱۰ سپتامبر در CVE Program نشست. شدت advisory: High، CVSS 4.0 برابر ۸٫۸ با بردار CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N. کلاس ضعف: CWE-444 (تفسیر ناسازگار درخواست HTTP).

سه اثر که روی سیم دیده شد، نه فقط روی کاغذ

گزارش روی تصویر GA traefik:v3.7 با پیش‌فرض entrypoint بازتولید شده:

  1. دورزدن مسیریابی بین vhost. روتر Host(app.example.com) match می‌شود؛ nginx بلاک internal-vhost را سرو می‌کند.
  2. دورزدن auth محدود به path. forwardAuth که ^/admin را DENY می‌کند، شکل opaque همان مسیر را ALLOW می‌دهد و /admin به backend می‌رسد.
  3. فرار از access log. هر سه درخواست — بی‌ضرر و مخرب — به‌صورت "GET / HTTP/1.1" ثبت می‌شوند.

سخت‌گیری encodedCharacters.allowEncodedSlash=false روی /admin%2f..%2fsecret با ۴۰۰ می‌ایستد؛ همان payload داخل Opaque اصلاً دیده نمی‌شود. یعنی hardening روشن است و structurally bypass می‌شود.

نسخه‌های آسیب‌پذیر: همهٔ 2.x تا v2.11.56؛ v3 از v3.0.0 تا v3.7.12. پچ در v2.11.57 و v3.7.13. خط v3.0 تا v3.6 پایان عمر است و فیکس جدا نمی‌گیرد؛ باید به 3.7.13 بروید. تغییر در PR 13796 است.

اگر Traefik لبهٔ چند vhost با forwardAuth یا محدودیت prefix است، این CVE همان شکاف بین چیزی که روتر می‌بیند و چیزی که backend می‌گیرد.

آخرین مطالب