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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2026-103956-loom-unauth — CVE-2026-103956 - Loom for AWS - حرج - تجاوز المصادقة - مسؤول خارق غير مُصادق عليه عند عدم تكوين IdP | Kitploit
أدوات/GitHubGitHub/abraxas/cve-2026-103956-loom-unauth
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالمحاكاة الافتراضية للأماناختبار الاختراقأمن السحابةالمصادقةمختبرات وتدريب عملي
GitHub
abraxas/cve-2026-103956-loom-unauth

cve-2026-103956-loom-unauth

CVE-2026-103956 - Loom for AWS - حرج - تجاوز المصادقة - مسؤول خارق غير مُصادق عليه عند عدم تكوين IdP

عرض المستودع
8522منذ 20 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - cve-2026-103956-loom-unauth

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cve-2026-103956-loom-unauth

cve-2026-103956-loom-unauth

Loom for AWS < 1.6.1 - AWS Labs

عندما يكون Cognito غير مضبوط ولا يوجد مزوّد هوية خارجي (IdP) نشط، فإن get_current_user يمنح كل طلب t-admin / g-admins-super. ويشمل ذلك الطلبات التي لا تحمل ترويسة Authorization. لذا فإن أي نشر جديد قبل إعداد IdP يُعدّ لوحة إدارة مفتوحة.

المعرّفCVE-2026-103956
CWECWE-306 / CWE-1188
CVSSحرج: 10.0 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
المنتجLoom for AWS
المتأثر< 1.6.1. إصدار المختبر المثبّت v1.6.0 (8c658d61). تم إصلاحه في v1.6.1 (ccad5665).
المصادقةبدون مصادقة
الفئةتجاوز المصادقة / مدير أعلى غير مُصادَق (ATO)
النطاقعن بُعد (بدون مصادقة)
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ما يمكن للمهاجم فعله

يمتلك المهاجم مستوى التحكم في الوكيل دون أي بيانات اعتماد.

  • الدخول بصفة مدير أعلى. طلب GET /api/auth/me دون أي ترويسة يُرجع username=local-dev وsub=local والمجموعتين t-admin وg-admins-super. وكل نطاق في GROUP_SCOPES يأتي مع تلك الهوية.
  • تسجيل خوادم الأدوات. طلب POST /api/mcp/servers غير المُصادَق يُرجع 201. وتقع MCP وA2A والوكلاء والذكريات والأمان والإعدادات وبيانات الاعتماد وتدقيق الإدارة خلف نفس الاعتمادية.
  • قراءة أسرار التكامل المخزّنة. طلب GET /api/mcp/servers/{id}/export يتطلب admin:write. وفي هذا الإصدار المثبّت يُرجع oauth2_client_secret من SQLite. كما يذكر نص CVE إعادة كتابة سياسة دور IAM على أدوار الوكلاء المُدارة؛ وهذا المسار يتطلب AWS وهو خارج نطاق هذا المختبر المحلي (loopback).
  • استغلاله على منفذ منشور. نشر جديد، أو Cognito منسي، أو IdP فشل تحميله. الواجهة الخلفية هي FastAPI على المنفذ 8000. ويكفي الوصول عبر الشبكة.

يتطلب v1.6.1 LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV بالإضافة إلى عميل loopback. الطلب نفسه يعيد 401 (No identity provider configured).

كيف وجدته

نشرت AWS CVE-2026-103956 مع GHSA-vgmj-998f-r8mp والنشرة 2026-124-AWS. ثبّتُّ awslabs/loom v1.6.0 (8c658d61) إلى جانب v1.6.1 (ccad5665) وشغّلت الواجهة الخلفية على SQLite مع عدم ضبط LOOM_COGNITO_USER_POOL_ID.

تتحقق دالة get_current_user في backend/app/dependencies/auth.py من متغيرات بيئة Cognito ومن صف IdP نشط. وعندما يكون كلاهما فارغًا: تُرجع UserInfo(sub="local", username="local-dev", groups=["t-admin", "g-admins-super"], scopes=ALL_SCOPES). ولا يُقرأ الرمز (token) إطلاقًا.

شغّلت FastAPI القياسي على loopback 127.0.0.1:18180 (v1.6.0) و18181 (v1.6.1). بلا واجهة أمامية. بلا AWS. كان طلب GET /api/auth/me غير المُصادَق على 1.6.0 يُرجع 200 مع تلك المجموعات. وكان طلب POST /api/mcp/servers غير المُصادَق مع oauth2_client_secret=CVE-2026-103956-WITNESS يُرجع 201. وأعاد GET /api/mcp/servers/1/export السرّ نفسه. أما على 1.6.1 فكان نفس الطلب /api/auth/me يُرجع 401.

SUCCESS CVE-2026-103956 me-http=200 me-user=local-dev me-sub=local me-groups=t-admin,g-admins-super mcp-create=201 export-has-secret=yes list-has-witness=yes patched-me-http=401 CVE-2026-103956-WITNESS

المسارات الخاطئة المسجّلة مسبقًا: تم تخطي public.ecr.aws/docker/library/python:3.13-slim لصالح Docker Hub python:3.13-slim؛ أول /health على v1.6.0 كان curl 52 بينما كان uvicorn مرتبطًا، ثم 200؛ مخطط إنشاء MCP طابق عند أول POST، دون إعادة محاولة 422. صدفة عكسية. مسرح. الأوراكل هو /api/auth/me بالإضافة إلى السر المُصدَّر.

المختبر

cd lab
./run.sh

استهدف فقط http://127.0.0.1:18180 (v1.6.0) وhttp://127.0.0.1:18181 (v1.6.1). يقوم run.sh بعمل shallow-clone لتلك الوسوم، ويبني كلا الواجهتين الخلفيتين، ثم يفكك الحزمة. SQLite. لا توجد متغيرات بيئة Cognito. لا يوجد LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV على الخدمة المُرقّعة.

الإصلاح

قم بالترقية إلى 1.6.1 أو أحدث. توصي AWS بـ 1.7.0 لمعالجة مشكلات SSRF/الرموز المميزة المشابهة. تجاوز 1.6.1 اختياري ومقتصر على loopback فقط. حتى ذلك الحين، أكمل إعداد Cognito أو مزوّد هوية خارجي قبل أن تصبح الواجهة الخلفية قابلة للوصول خارج loopback، وأبقِ LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV غير مضبوط على أي شيء يتم نشره.

المراجع

  • CVE-2026-103956
  • GHSA-vgmj-998f-r8mp
  • AWS bulletin 2026-124-AWS
  • awslabs/loom tags v1.6.0 / v1.6.1
  • backend/app/dependencies/auth.py (get_current_user)
  • CWE-306

الترخيص

GNU Affero GPL v3.0

تنزيل الأداة