
Python PoC ومختبر Docker لـ CVE-2026-22599، وهو حقن SQL موثّق في واجهة برمجة التطبيقات للكتابة الخاصة بـ Content-Type Builder في Strapi عبر Knex raw defaultTo.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-22599
Strapi 5.33.1 - Strapi
أنا @abraxas_null. مختبر Loopback. يقوم CVE-2026-22599-Abraxas-Labs.py بتغيير الدليل إلى lab/ وتشغيل run.sh.
حقن استعلام قاعدة البيانات في واجهة الكتابة الخاصة بـ Content-Type Builder. يتحقق Yup من الصحة لكنه لا يزيل column.defaultTo غير المعروف. يدمج مُنشئ المخطط [value, { isRaw: true }] في Knex defaultTo(raw()). تم إصلاحه في 5.33.2 / 4.26.1 عبر إخفاء واجهات الكتابة الخاصة بـ CTB في بيئة الإنتاج.
| CVE | CVE-2026-22599 · CVE.org |
| CWE | CWE-89 |
| CVSS | حرج: 9.3 CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N |
| المنتج | Strapi |
| المتأثر | جميع الإصدارات حتى 5.33.1 (شاملة) |
| المُصحَّح | 5.33.2 / 4.26.1 وما بعدها |
| المصادقة | مصادَق عليه |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
JWT لمسؤول مصادَق عليه. POST إلى /content-type-builder/content-types بتعبير DEFAULT خام. يستخدم الإدراج التالي على ذلك النوع استعلام SQL الخاص بالمهاجم. أداة التحقق في المختبر هي GHSA22599-WITNESS على صف labitem جديد، وليس صدفة أوامر.
تتبعت createColumn وهي تنشر attribute.column فوق defaultTo، ثم isRaw وهي تستدعي knex raw() دون تعقيم. أعددت Strapi 5.33.1، وسجلت مسؤولاً، ونشرت نوع المحتوى، وأدرجت صفاً.
ضوابط الفشل موجودة بالفعل في المختبر: eval/base64/system ليست أداة التحقق؛ الصدفة العكسية ليست أداة التحقق؛ يجب ألا يحترم 5.33.2 الصف الخام.
المنفذ 18098. Strapi 5.33.1. JWT لمسؤول. واجهة الكتابة الخاصة بـ CTB قابلة للوصول (قبل التصحيح: أيضاً في الإنتاج). ./run.sh.
استهدف فقط 127.0.0.1:18098 (أو عنوان loopback الذي ربطته).
python3 CVE-2026-22599-Abraxas-Labs.py
يقوم ذلك بتغيير الدليل إلى lab/ وتشغيل run.sh (compose up، انتظار المسؤول، ثم poc.py).
Witness: يحتوي JSON الخاص بإدخال content-manager على GHSA22599-WITNESS.
طرق للخسارة دون تعلّم أي شيء:
حدّث Strapi إلى 5.33.2 / 4.26.1 أو أحدث. أعد تشغيل CVE-2026-22599-Abraxas-Labs.py مقابل البناء المُرقّع: يجب ألا يصل DEFAULT الخام.
github.com/strapi/strapi/security/advisories/GHSA-3xcq-8mjw-h6mx
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
GNU Affero GPL v3.0. راجع LICENSE.
يتواصل العميل مع loopback. استخدامه ضد أنظمة لا تملكها غير مُصرّح به من قِبل Abraxas Labs. لا ضمان.