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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-33186 — تجاوز سياسة التخويل في gRPC-Go RBAC عبر غياب الشرطة المائلة في `:path` (تجاوز المصادقة) | Kitploit
أدوات/GitHubGitHub/johanneslks/cve-2026-33186
المصادقة والترخيصالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأمن واجهات برمجة التطبيقات
GitHubjohanneslks/cve-2026-33186

CVE-2026-33186

تجاوز سياسة التخويل في gRPC-Go RBAC عبر غياب الشرطة المائلة في `:path` (تجاوز المصادقة)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-33186

تجاوز سياسة تفويض RBAC في gRPC-Go عبر غياب الشرطة المائلة في :path (تجاوز المصادقة)

الوصف

تنفّذ حزمة authz في google.golang.org/grpc تفويض RBAC (التحكم في الوصول القائم على الأدوار) على مستوى SDK باستخدام قواعد الرفض والسماح تُطابَق مع الترويسة الزائفة :path. تخزّن طبقة نقل خادم HTTP/2 القيمة الخام :path الواردة من العميل دون التحقق من أنها تبدأ بـ /. وتقوم طبقة التوجيه (handleStream) بتطبيع المسار قبل الإرسال، لكن محرك RBAC يقرأ القيمة ما قبل التطبيع من السياق عبر grpc.Method(ctx).

تُكتب قواعد الرفض بصيغة /Service/Method (بشرطة مائلة بادئة). يؤدي إرسال :path = "Service/Method" (بدون شرطة مائلة) إلى إخفاق قاعدة الرفض في مقارنة الحرف الأول. عندها تُفعَّل قاعدة السماح الافتراضية ويتم تنفيذ الطريقة المحمية.

أي خادم gRPC يستخدم authz.NewStatic() أو authz.NewFileWatcher() مع قواعد الرفض يكون عرضة للثغرة. يكفي عميل HTTP/2 خام (Python h2 أو curl --http2 أو أي كاتب إطارات مخصص) لاستغلالها — دون الحاجة إلى بيانات اعتماد أو حالة سابقة.

أظهر التحقق المباشر ضد grpc-go v1.71.0 حالة gRPC 0 (OK) على AdminMethod المُدرج في قائمة الرفض عند حذف الشرطة المائلة البادئة، بينما أعادت نفس الاستدعاء بالشرطة المائلة المعيارية الحالة 7 (PermissionDenied).

المتأثر: google.golang.org/grpc < v1.79.3. أُصلحت في v1.79.3 (PR #8981).

الاستخدام

# Install the Python HTTP/2 dependency:
pip install h2

# Against an existing vulnerable gRPC server:
python3 poc.py --host <HOST> --port <PORT>
python3 poc.py --host <HOST> --port <PORT> --service MyService --method SecretMethod

# When TCP destination and HTTP/2 authority differ:
python3 poc.py --host <VHOST> --connect-host <IP> --port 80 \
  --service MyService --method SecretMethod

# Canonical upstream malformed path:
python3 poc.py --host <HOST> --port <PORT> --path-mode no-slash

# Reverse-proxy deployments that preserve a double slash before grpc_pass:
python3 poc.py --host <VHOST> --connect-host <IP> --port 80 \
  --path-mode double-slash --service MyService --method SecretMethod

# Literal :path value when you already know the backend path shape:
python3 poc.py --host <VHOST> --connect-host <IP> --path-mode custom \
  --attack-path '//MyService/SecretMethod'

# Save a decoded successful attack response for follow-on manual use:
python3 poc.py --host <HOST> --port <PORT> --output-response /tmp/grpc-response.txt

يتحكم --host في مضيف :authority الخاص بـ HTTP/2 ما لم يتم ضبط --authority. ويتحكم --connect-host في وجهة TCP. وهذا مفيد في إعدادات المضيف الافتراضي أو الوكلاء العكسيين حيث يختلف عنوان IP القابل للوصول عن سلطة الخلفية المُوجَّه إليها.

السيناريو الأساسي لدى grpc-go هو --path-mode no-slash. أما double-slash وcustom فهما أداتان مساعدتان عامتان للبيئات التي يمرر فيها وكيل وسيط شكلاً مختلفاً من المسارات المشوّهة إلى الخلفية المعرضة للثغرة.

المتطلبات

  • المهاجم: Python 3.8+، h2 (pip install h2)
  • الهدف: خادم gRPC-Go يستخدم حزمة authz مع قواعد الرفض

الملفات

الملفالوصف
poc.pyPoC بلغة بايثون — يرسل 3 استدعاءات HTTP/2 خام (خط أساس/هجوم/تحكم) لإثبات التجاوز
README.mdتفاصيل الثغرة وأمثلة الاستخدام والمراجع
LICENSEرخصة GPLv3

المراجع

  • https://github.com/grpc/grpc-go/security/advisories/GHSA-p77j-4mvh-x3m3
  • https://github.com/grpc/grpc-go/pull/8981

إشعار قانوني

صدر هذا المشروع بموجب رخصة GNU GPLv3.

تم توفيره لأغراض البحث الأمني الدفاعي والتعليم والاختبار المصرّح به. لا تستخدم هذا الكود ضد أنظمة أو خدمات دون إذن صريح من المالك.

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

راجع ملف LICENSE لشروط الضمان والمسؤولية.

تنزيل الأداة