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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-44338-Lab — مختبر يعتمد على Docker يوضح ثغرة تجاوز المصادقة CVE-2026-44338 في واجهة Flask API القديمة لـ PraisonAI. يشمل الخدمات الضعيفة والمصححة مع نص PoC للبحث الأمني المحلي. | Kitploit
أدوات/GitHubGitHub/rootdirective-sec/cve-2026-44338-lab
تحليل الثغرات الأمنيةاستغلال تطبيقات الويباختبار الاختراقالمصادقةالتعلم والتعليممختبرات وتدريب عملي
GitHubrootdirective-sec/cve-2026-44338-lab

CVE-2026-44338-Lab

مختبر يعتمد على Docker يوضح ثغرة تجاوز المصادقة CVE-2026-44338 في واجهة Flask API القديمة لـ PraisonAI. يشمل الخدمات الضعيفة والمصححة مع نص PoC للبحث الأمني المحلي.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مختبر تجاوز المصادقة CVE-2026-44338 PraisonAI

مختبر Docker محلي لـ CVE-2026-44338، وهو تجاوز للمصادقة في خادم Flask API القديم في PraisonAI.

يوضح هذا المختبر حالة الوصول غير المصادق عليه على مسارات API القديمة. يستخدم عن قصد إعادة إنتاج آمنة على مستوى المسار بدلاً من نشر PraisonAI كامل، بحيث يظل الإثبات مركزًا على ثغرة المصادقة ولا يؤدي إلى تشغيل سير عمل الوكلاء الحقيقي أو استدعاءات LLM الخارجية.

ملخص

يؤثر CVE-2026-44338 على إصدارات PraisonAI >= 2.5.6 و <= 4.6.33.

في خادم API القديم المعرض للخطر، تم تعطيل المصادقة بشكل افتراضي. نتيجة لذلك، يمكن للمتصل غير المصادق الذي يمكنه الوصول إلى خادم API الوصول إلى /agents وتشغيل مسار سير العمل /chat بدون رمز حامل (bearer token).

تم إصلاح المشكلة في PraisonAI 4.6.34 عن طريق تغيير السلوك الافتراضي ليتطلب المصادقة ما لم يتم تعطيلها صراحةً.

السبب الجذري

في الإصدار الضعيف، استخدم خادم API القديم إعدادات افتراضية غير آمنة للمصادقة:

root@kitploit:~
AUTH_ENABLED = False
AUTH_TOKEN = None

def check_auth():
    if not AUTH_ENABLED:
        return True

نظرًا لأن check_auth() أعاد True عند تعطيل المصادقة، فإن المسارات المحمية تُترك مفتوحة.

تضمنت المسارات المتأثرة:

  • GET /agents
  • POST /chat

يغير الإصدار المُصحح الوضع الافتراضي بحيث يتم تمكين المصادقة ما لم يتم تعطيلها صراحةً من خلال التكوين.

تفاصيل الإصلاح على مستوى المصدر

لم تكن المشكلة الأساسية بدائية استغلال معقدة. لقد جاءت من الإعدادات الافتراضية غير الآمنة في خادم Flask API القديم.

السلوك الضعيف في v4.6.33

في v4.6.33، تم تعطيل المصادقة افتراضيًا:

root@kitploit:~
AUTH_ENABLED = False
AUTH_TOKEN = None

ثم فشل فحص المصادقة بطريقة مفتوحة:

root@kitploit:~
def check_auth():
    if not AUTH_ENABLED:
        return True

هذا يعني أنه تم قبول الطلب كلما تم تعطيل المصادقة، حتى لو لم يرسل المتصل رأس Authorization.

التدفق الضعيف كان:

root@kitploit:~
AUTH_ENABLED = False
        ↓
check_auth() تُرجع True
        ↓
يتم السماح بـ GET /agents
يتم السماح بـ POST /chat
        ↓
يمكن للمتصل غير المصادق الوصول إلى بيانات تعريف الوكيل والوصول إلى مسار تشغيل سير العمل

الجزء الحساس هو أن /chat لم يكن مجرد نقطة نهاية للحالة. كان يقبل رسالة مستخدم ثم يستدعي مشغل سير العمل PraisonAI باستخدام agents.yaml.

السلوك المُصحح في v4.6.34

في v4.6.34، تم تغيير السلوك الافتراضي ليتطلب المصادقة ما لم يعطلها المشغل صراحةً:

root@kitploit:~
AUTH_ENABLED = os.environ.get("PRAISONAI_API_AUTH", "enabled").strip().lower() != "disabled"
AUTH_TOKEN = os.environ.get("PRAISONAI_API_TOKEN") or None

يحسن الإصدار المُصحح أيضًا سلوك التعامل مع الرمز:

  • تم تمكين المصادقة افتراضيًا
  • تعطيل المصادقة يتطلب خيار تكوين صريح
  • إذا لم يتم توفير رمز مع تمكين المصادقة، يقوم الخادم بإنشاء رمز عشوائي
  • تستخدم مقارنة الرمز secrets.compare_digest()
  • يربط خادم API بـ 127.0.0.1 افتراضيًا بدلاً من كشف نفسه على جميع الواجهات

التدفق المُصحح هو:

root@kitploit:~
AUTH_ENABLED = True افتراضيًا
        ↓
يجب أن يتضمن الطلب رمز Bearer صالح
        ↓
الرمز المفقود أو غير الصالح يُرجع 401
        ↓
/agents و /chat لم يعد بإمكان الوصول المجهول

يعكس هذا المختبر ذلك الاختلاف على مستوى المصدر:

root@kitploit:~
vuln    -> المصادقة معطلة افتراضيًا، الطلبات غير المصادقة تُرجع 200
patched -> المصادقة مطلوبة افتراضيًا، الطلبات غير المصادقة تُرجع 401

تصميم المختبر

يحتوي المختبر على خدمتين محليتين:

الخدمةالرابطالسلوك
vulnhttp://127.0.0.1:8081يعيد إنتاج سلوك المصادقة المفتوح الضعيف
patchedhttp://127.0.0.1:8082يتطلب مصادقة رمز الحامل

كلا الخدمتين مرتبطتان بـ 127.0.0.1 فقط.

يستخدم مسار /chat مشغلًا وهميًا بدلاً من سير عمل PraisonAI حقيقي. يوفر هذا دليلاً قابلاً للملاحظة على أن الطلب غير المصادق يصل إلى مسار تشغيل سير العمل دون التسبب في آثار جانبية خارجية.

هيكل المستودع

root@kitploit:~
.
├── docker-compose.yml
├── vuln
│   ├── Dockerfile
│   └── start_server.py
├── patched
│   ├── Dockerfile
│   └── start_server.py
├── poc
│   └── poc.py
└── .gitignore
└── README.md

التشغيل

root@kitploit:~
docker compose up --build -d
python3 poc/poc.py

النتيجة المتوقعة

الخدمة الضعيفة تسمح بالوصول غير المصادق:

root@kitploit:~
=== vuln ===
[unauthenticated] GET /agents
status: 200

[unauthenticated] POST /chat
status: 200

verdict: LIKELY_VULNERABLE

الخدمة المُصححة تمنع الوصول غير المصادق:

root@kitploit:~
=== patched ===
[unauthenticated] GET /agents
status: 401

[unauthenticated] POST /chat
status: 401

verdict: NOT_VULNERABLE_OR_PROTECTED

الملخص النهائي المتوقع:

root@kitploit:~
vuln:    LIKELY_VULNERABLE
patched: NOT_VULNERABLE_OR_PROTECTED

التحقق اليدوي

تحقق من المسار الضعيف:

root@kitploit:~
curl -i http://127.0.0.1:8081/agents

الاستجابة الضعيفة المتوقعة:

root@kitploit:~
HTTP/1.1 200 OK

تحقق من المسار المُصحح:

root@kitploit:~
curl -i http://127.0.0.1:8082/agents

الاستجابة المُصححة المتوقعة:

root@kitploit:~
HTTP/1.1 401 UNAUTHORIZED

يجب أن تظهر سجلات الخادم الفرق بوضوح:

root@kitploit:~
vuln:    "GET /agents HTTP/1.1" 200
patched: "GET /agents HTTP/1.1" 401

التنظيف

root@kitploit:~
docker compose down -v

ملاحظات السلامة

هذا المختبر مخصص للبحث الأمني المحلي فقط.

لا يقوم PoC بما يلي:

  • تنفيذ أوامر shell
  • استخدام مفاتيح API حقيقية
  • استدعاء مزودي LLM خارجيين
  • مسح الشبكات الخارجية
  • تشغيل سير عمل وكيل PraisonAI حقيقي

المراجع

  • تنبيه GitHub: GHSA-6rmh-7xcm-cpxj https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-6rmh-7xcm-cpxj

  • NVD: CVE-2026-44338 https://nvd.nist.gov/vuln/detail/CVE-2026-44338

  • OSV: GHSA-6rmh-7xcm-cpxj https://osv.dev/vulnerability/GHSA-6rmh-7xcm-cpxj

  • المصدر الضعيف: PraisonAI v4.6.33 src/praisonai/api_server.py https://raw.githubusercontent.com/MervinPraison/PraisonAI/v4.6.33/src/praisonai/api_server.py

  • المصدر المُصحح: PraisonAI v4.6.34 src/praisonai/api_server.py https://raw.githubusercontent.com/MervinPraison/PraisonAI/v4.6.34/src/praisonai/api_server.py

تنزيل الأداة