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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-72815-poc — عرض Go محلي لإثبات المفهوم يوضح CVE-2026-72815، وهو خلل انتحال IP عبر X-Forwarded-For في go-chi/chi middleware.RealIP يتجاوز قوائم التحكم بالوصول المعتمدة على IP، مع مقارنة بالإصدار المُصلَّح v5.3.0. | Kitploit
أدوات/GitHubGitHub/saku0512/cve-2026-72815-poc
أدوات دفاعيةتحليل الثغرات الأمنيةتحليل الكودالاستغلالأمن الويبالمصادقةالأوراق والأبحاثالتعلم والتعليم
GitHubsaku0512/cve-2026-72815-poc

CVE-2026-72815-poc

عرض Go محلي لإثبات المفهوم يوضح CVE-2026-72815، وهو خلل انتحال IP عبر X-Forwarded-For في go-chi/chi middleware.RealIP يتجاوز قوائم التحكم بالوصول المعتمدة على IP، مع مقارنة بالإصدار المُصلَّح v5.3.0.

عرض المستودع
منذ 21س 57دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-72815: go-chi/chi middleware.RealIP انتحال IP PoC

النسخة الإنجليزية

نظرة عامة

هذا المستودع هو إثبات مفهوم محلي (PoC) لثغرة انتحال IP CVE-2026-72815 (GHSA-3fxj-6jh8-hvhx) الموجودة في middleware.RealIP الخاص بـ go-chi/chi.

يقوم middleware RealIP المصاب بثغرة بالثقة غير المشروطة بالقيمة الأولى (الأقصى يسارًا) في X-Forwarded-For، ويستبدل بها قيمة http.Request.RemoteAddr. في التكوينات التي يمكن للعميل فيها تحديد X-Forwarded-For، قد يتمكن المهاجم من انتحال أي عنوان IP كمصدر، وتجاوز أو تلويث قوائم التحكم بالوصول (ACL) المعتمدة على IP، وحدود المعدل (rate limit)، وسجلات التدقيق.

يستخدم هذا PoC فقط httptest، ولا يقوم بأي اتصال بمضيفين خارجيين.

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

يُستخدم فقط للأغراض التعليمية والتحقق الأمني المصرح به. لا تستخدمه ضد بيئات الآخرين دون إذن.

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

  • معرّف CVE: CVE-2026-72815
  • استشارة GitHub: GHSA-3fxj-6jh8-hvhx
  • المنتج: github.com/go-chi/chi/v5
  • واجهة API المصابة: middleware.RealIP
  • النوع: تجاوز المصادقة عبر الانتحال (CWE-290)
  • CVSS v4.0: 6.9 (متوسط)
  • الإصدارات المتأثرة وفق سجل CVE: >= 5.2.1, < 5.3.0
  • الإصدار المُصلح: 5.3.0

السبب الجذري

عند وجود X-Forwarded-For، يقوم middleware.RealIP بأخذ القيمة الأولى المفصولة بفواصل وتعيينها في RemoteAddr.

من الناحية المفاهيمية، العملية كالتالي:

root@kitploit:~
if xff := r.Header.Get("X-Forwarded-For"); xff != "" {
    ip, _, _ = strings.Cut(xff, ",")
}

r.RemoteAddr = ip

عادةً ما يضيف reverse proxy عنوان IP المصدر الفعلي إلى نهاية X-Forwarded-For الموجود. لذلك، إذا كان بإمكان المهاجم تحديد قيمة مسبقة مثل التالية، فلا يمكن الوثوق بالطرف الأيسر:

root@kitploit:~
X-Forwarded-For: 127.0.0.1, 203.0.113.50

يعتمد RealIP المصاب بثغرة على 127.0.0.1 كعنوان IP للعميل.

PoC

المتطلبات

  • Go 1.23 أو أحدث (حالة vulnerable case المفردة في v5.2.1 تتطلب Go 1.20 أو أحدث)
  • اتصال شبكي مطلوب لتنزيل الوحدة (module) لأول مرة

1. إعادة إنتاج الإصدار المصاب v5.2.1

root@kitploit:~
cd vulnerable
GOWORK=off go run .

يفترض PoC أن العميل الفعلي هو 203.0.113.50، وأن عنوان IP المسموح به كمسؤول هو 127.0.0.1.

الطلب العادي سيعيد HTTP 403، لكن الطلب المرفق بالترويسة التالية سيقوم RealIP فيه بإعادة كتابة RemoteAddr إلى 127.0.0.1، مما يعيد HTTP 200.

root@kitploit:~
X-Forwarded-For: 127.0.0.1, 203.0.113.50

المخرجات الرئيسية المتوقعة:

root@kitploit:~
=== CVE-2026-72815 vulnerable case ===
[*] go-chi/chi version: v5.2.1
[*] normal request status: 403
[*] spoofed request status: 200
[!] VULNERABLE: attacker-controlled X-Forwarded-For bypassed the IP ACL.

2. عند استخدام واجهة API الآمنة في v5.3.0

root@kitploit:~
cd fixed
GOWORK=off go run .

في v5.3.0، تمت إضافة ClientIPFromHeader وClientIPFromXFF وClientIPFromXFFTrustedProxies وClientIPFromRemoteAddr كبدائل لـ RealIP.

تفترض حالة fixed case في هذا PoC تكوينًا يحتوي على proxy موثوق واحد مباشرة أمام الخادم، ويضيف هذا الـ proxy عنوان IP الفعلي للعميل إلى نهاية XFF، لذلك يستخدم ClientIPFromXFF(). حتى عند إرسال نفس الترويسة المنتحلة، سيتم اعتماد 203.0.113.50 من الطرف الأيمن، مما يمنع تجاوز ACL.

المخرجات الرئيسية المتوقعة:

root@kitploit:~
=== CVE-2026-72815 safe replacement case ===
[*] go-chi/chi version: v5.3.0
[*] normal request status: 403
[*] spoofed request status: 403
[+] SAFE: the spoofed leftmost X-Forwarded-For value did not bypass the IP ACL.

3. التحقق من كليهما معًا

root@kitploit:~
bash scripts/run-version-matrix.sh

ملاحظة حول v5.3.0

حتى في v5.3.0، لا يزال سلوك middleware.RealIP القديم نفسه موجودًا لأغراض التوافق الخلفي. تمت إضافة ملاحظة deprecated إلى RealIP، ويُنصح بالانتقال إلى واجهات API الآمنة ClientIPFrom*.

لذلك، لا يكفي مجرد تحديث التبعية (dependency) إلى v5.3.0 والاستمرار في استخدام middleware.RealIP، بل يجب الانتقال إلى middleware ClientIPFrom* المناسب لتكوين الشبكة / reverse proxy الفعلي.

نطاق PoC

يتحقق هذا المستودع فقط مما يلي:

  1. أن middleware.RealIP يعكس قيمة XFF اليسرى التي يتحكم بها المهاجم في RemoteAddr
  2. أنه نتيجة لذلك، يمكن تجاوز ACL بسيط معتمد على IP
  3. أنه عند استخدام ClientIPFromXFF() في v5.3.0 مع تكوين proxy مناسب، يمكن رفض نفس المدخلات

لا يقوم بأي فحص للشبكات الفعلية، أو طلبات لخدمات الآخرين، أو DoS، أو استمرارية (persistence).

الإجراءات الوقائية

  • تحديث go-chi/chi إلى v5.3.0 أو أحدث
  • الانتقال من middleware.RealIP إلى middleware ClientIPFrom* المناسب للبنية التحتية الفعلية
  • على جانب reverse proxy أيضًا، يجب الكتابة فوق ترويسات forwarding المرسلة من العميل أو إزالتها بشكل مناسب
  • عدم الاعتماد على عنوان IP وحده كأساس للمصادقة والتفويض المهمين

المراجع

  • CVE-2026-72815
  • GHSA-3fxj-6jh8-hvhx
  • go-chi/chi PR #967: middleware.ClientIP
  • go-chi/chi v5.3.0
تنزيل الأداة