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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/sergicortesabadia/cve-2026-26198-analysis
تحليل الثغرات الأمنيةتحليل الكودأمن الويبالأوراق والأبحاثالتعلم والتعليم
GitHubsergicortesabadia/cve-2026-26198-analysis

CVE-2026-26198-analysis

تعمق في ثغرة حقن SQL حرجة في Ormar ORM الخاص بلغة بايثون — إعادة الإنتاج، الإصلاح، والاختبارات

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-26198 — حقن SQL في Ormar ORM

تحليل معمّق لثغرة حقن SQL حرجة (CVSS 9.8) في ORM غير متزامن بلغة Python، مع إعادة الإنتاج والتحليل والإصلاح.

الثغرة

Ormar هو ORM مصغّر غير متزامن شائع للغة Python، يُستخدم عادةً مع FastAPI وStarlette. الإصدارات 0.9.9 حتى 0.22.0 تحتوي على ثغرة حقن SQL في طريقتي التجميع min() وmax().

السبب الجذري هو خطأ "تنفيذ جزئي": بينما تتحقق sum() وavg() من أن معامل العمود يشير إلى حقل رقمي فعلي، تتخطى min() وmax() هذا الفحص تمامًا وتمرّر إدخال المستخدم مباشرةً إلى sqlalchemy.text() — وهو نقطة استقبال SQL خام.

يمكن للمهاجم حقن استعلام فرعي كمعامل "العمود":

root@kitploit:~
# الاستخدام المتوقع
await Item.objects.max("price")  # → SELECT max(price) FROM items

# حمولة الهجوم
await Item.objects.max("(SELECT password FROM users LIMIT 1)")
# → SELECT max((SELECT password FROM users LIMIT 1)) FROM items
# يُرجع كلمة مرور المسؤول!

حقائق سريعة

السمةالقيمة
معرف CVECVE-2026-26198
درجة CVSS9.8 (حرجة)
CWECWE-89: حقن SQL
المتأثرormar 0.9.9 – 0.22.0
تم الإصلاح فيormar 0.23.0
تاريخ النشر24 فبراير 2026
هل يتطلب مصادقة؟لا — بدون مصادقة

هيكل المشروع

root@kitploit:~
├── README.md               ← أنت هنا
├── vulnerable_app.py       ← تطبيق FastAPI مصغّر بالنمط القابل للاستغلال
├── exploit_demo.py         ← إثبات مفهوم آمن يُظهر الحقن أثناء العمل
├── patched_app.py          ← النسخة المُصلحة مع التحقق من الإدخال
├── test_vulnerability.py   ← اختبارات تُثبت وجود الثغرة وفعالية الإصلاح
├── requirements.txt
└── analysis/
    └── root_cause.md       ← تحليل تفصيلي على مستوى الكود للسبب الجذري

تشغيل العرض التوضيحي

root@kitploit:~
git clone https://github.com/YOUR_USERNAME/CVE-2026-26198-analysis.git
cd CVE-2026-26198-analysis
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt

# تشغيل الاختبارات (لا حاجة لقاعدة بيانات خارجية — يستخدم SQLite)
python -m pytest test_vulnerability.py -v

# تشغيل العرض التوضيحي التفاعلي للاستغلال
python exploit_demo.py

الإصلاح

يتحقق الإصلاح من أن معامل العمود يطابق حقلًا فعليًا في النموذج قبل وصوله إلى sqlalchemy.text(). يتم ذلك عبر نهج القائمة البيضاء: يُسمح فقط بأسماء الأعمدة الموجودة في تعريفات حقول النموذج.

راجع patched_app.py للتنفيذ وanalysis/root_cause.md للتحليل الكامل.

النقاط الرئيسية

  1. أنظمة ORM ليست حماية تلقائية من حقن SQL. إذا كانت طريقة ORM تقبل سلسلة نصية خام وتمررها إلى جملة نصية، فهي بنفس خطورة كتابة SQL خام.
  2. التحقق الجزئي أسوأ من عدم وجود تحقق. حقيقة أن sum()/avg() كانتا مُتحقَّق منهما بينما min()/max() لم تكونا خلقت شعورًا زائفًا بالأمان.
  3. استخدم القائمة البيضاء، لا القائمة السوداء. يتحقق الإصلاح من أسماء الأعمدة المعروفة والصالحة بدلًا من محاولة تصفية الأنماط الخبيثة.

المراجع

  • استشارة GitHub (GHSA-xxh2-68g9-8jqr)
  • إدخال NVD
  • مستودع Ormar

الترخيص

MIT

تنزيل الأداة