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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
bitwarden-cipher-create-acl — Bitwarden Server v2026.9.2 - عالي - IDOR - زرع عناصر خزنة قابلة لفك التشفير في مجموعات لا يملك المستدعي صلاحية الكتابة فيها | Kitploit
أدوات/GitHubGitHub/abraxas/bitwarden-cipher-create-acl
المصادقة والترخيصتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقمختبرات وتدريب عملي
GitHub

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
abraxas/bitwarden-cipher-create-acl

bitwarden-cipher-create-acl

Bitwarden Server v2026.9.2 - عالي - IDOR - زرع عناصر خزنة قابلة لفك التشفير في مجموعات لا يملك المستدعي صلاحية الكتابة فيها

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

Abraxas Labs - bitwarden-cipher-create-acl

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  bitwarden-cipher-create-acl

bitwarden-cipher-create-acl

Bitwarden Server v2026.9.2 - Bitwarden

إنشاء عنصر تشفير للمؤسسة على مسار Entity Framework (MariaDB، Postgres، SQLite) يُسقط معرّف المستدعي قبل إرفاق المجموعة. يمكن لعضو مؤكَّد أن يزرع عنصرًا بمفتاح المؤسسة داخل مجموعة لا يملك صلاحية الكتابة فيها. يقوم أعضاء المجموعة بمزامنته كتسجيل دخول مشترك عادي.

IDلا يوجد CVE حتى الآن
CWECWE-863 / CWE-639
CVSSمرتفع: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
المنتجBitwarden Server
المتأثرv2026.9.2 (9ee4e0eb) lite EF (MariaDB / Postgres / SQLite). MSSQL/Dapper يحتفظ بـ @UserId.
المصادقةعضو مؤكَّد في المؤسسة
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

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

يقوم المهاجم بإضافة عناصر إلى خزنة مجموعة مشتركة. لا يقرأ أو يستبدل الأسرار الموجودة فيها بالفعل.

يمتلك العضو المؤكَّد في المؤسسة مفتاح المؤسسة بالفعل، لذا يُفكّ تشفير العنصر الجديد لكل من يمكنه رؤية تلك المجموعة. يعرضه Bitwarden كتسجيل دخول أو ملاحظة أو بطاقة أو مفتاح SSH مشترك عادي من داخل خزنة الشركة.

  • التصيّد من الخزنة. ازرع تسجيل دخول باسم يشبه عنصرًا مشتركًا حقيقيًا (Okta، GitHub، VPN، Payroll) يشير URI الخاص به إلى مضيف يتحكم به المهاجم. يفتحه أعضاء المجموعة من Bitwarden فيهبطون على صفحة المهاجم، أو يُملأ تلقائيًا مقابل صفحة مشابهة.
  • تسميم العمليات. ازرع ملاحظة آمنة أو تسجيل دخول يبدو كتدوير للمفاتيح (new AWS key، bastion SSH key، DB password after change). ينسخه أحدهم إلى الإنتاج أو إلى طرفية.
  • البقاء بعد الطرد. الإنشاء هو عنصر تشفير جديد في المجموعة. يبقى للجميع ممن لديهم صلاحية الوصول بعد إزالة عضوية المهاجم.
  • تجاوز القراءة فقط. يمكن لمتعاقد يملك صلاحية القراءة فقط على Production أن يُسقط عنصرًا جديدًا فيها على lite EF.

إذا لم يكن لديهم صلاحية الوصول إلى المجموعة المستهدفة، فقد يُرجع POST /api/ciphers/create رمز 404 بعد أن تكون الكتابة قد أُثبّتت بالفعل. ومع ذلك يستلم الضحايا العنصر عند المزامنة.

كيف وجدته

ثبّتُّ bitwarden/server v2026.9.2 (9ee4e0eb) بعد موجة 2026: طلب المسؤول TDE (CVE-2026-60104)، واقتطاع SSO ExternalId (CVE-2026-101878)، واستيراد المؤسسة للمجموعات الفارغة (CVE-2026-43638). تلك مغلقة. أما ACL المجموعة عند الإنشاء فلم يكن كذلك.

CiphersController.PostCreate يتحقق فقط من عضوية المؤسسة، ثم يمرّر skipPermissionCheck: true عند تعيين OrganizationId. بعد ذلك يتعامل SaveDetailsAsync مع "هذه المجموعة موجودة في المؤسسة" باعتباره الفحص الوحيد للمجموعة.

تستخدم lite MariaDB/Postgres/SQLite إطار EF. يضبط CreateAsyncReturnCipher القيمة cipher.UserId = null لوجود معرّف مؤسسة، ثم يمرّر هذا الـ null إلى UpdateCollectionsAsync. معرّف المستخدم الفارغ يعني كل المجموعات في المؤسسة. أما SQL Server Dapper فيحتفظ بـ @UserId من أجل Cipher_UpdateCollections (ReadOnly = 0). ذلك المسار هو الحالة السلبية.

المنعطفات الخاطئة المسجّلة مسبقًا: التعامل مع POST /organizations السحابي كإنشاء الاستضافة الذاتية (فهو [NotSelfHostedOnly]؛ وتحتاج lite إلى ملف ترخيص، لذا يزرع المختبر صفوف المؤسسة بعد التسجيل)؛ الزرع في مجموعة لا يستطيع المستدعي قراءتها وقراءة HTTP 404 كإخفاق (فصف CollectionCipher مُثبَّت بالفعل)؛ افتراض أن MSSQL lite سيُظهره (فـ Dapper لا يُسقط معرّف المستدعي)؛ ترك BW_ENABLE_ADMIN معطّلًا فلا تُرحّل lite أبدًا User / OrganizationDomain (فالمسؤول هو مُرحّل EF على هذه الصورة)؛ إغفال Bitwarden-Client-Version على /identity/connect/token ومشاهدة منح كلمة المرور يُرجع 400. صدفة عكسية. مسرحية.

المختبر

cd lab
./run.sh

الهدف فقط http://127.0.0.1:18160. الصورة ghcr.io/bitwarden/lite:2026.9.2 بالإضافة إلى MariaDB.

SUCCESS BITWARDEN-CIPHER-CREATE-ACL create-http=404 collectioncipher=1 victim-sync-has-cipher=yes cipher=<id> negative-http=404 readonly-http=200 BITWARDEN-CIPHER-CREATE-ACL-WITNESS

زرع بلا صلاحية وصول يُرجع 404 بعد تثبيت CollectionCipher. يحتوي كل من GET /api/ciphers و /api/sync لدى الضحية على المعرّف الجديد. القراءة فقط على B تُرجع 200 وتزرع رغم ذلك. تبقى مجموعة مؤسسة أجنبية على 404 دون صف انضمام.

الإصلاح

مرّر معرّف المستخدم الحافظ إلى UpdateCollectionsAsync في EF بالطريقة نفسها التي لا يزال CipherDetails_CreateWithCollections يمرّر بها @UserId بعد تصفير عمود UserId المخزَّن. لا تتعامل مع مستخدم فارغ على أنه "كل المجموعات" على مسار إنشاء العضو. الوجود في المؤسسة ليس صلاحية كتابة.

المراجع

  • github.com/bitwarden/server وسم v2026.9.2
  • CiphersController.cs (Post، PostCreate)
  • CipherService.cs (SaveDetailsAsync)
  • CipherRepository.cs (CreateAsyncReturnCipher، UpdateCollectionsAsync)
  • CWE-863

الترخيص

GNU Affero GPL v3.0

تنزيل الأداة