Strapi is an open source headless content management system. Strapi versions starting in 4.0.0 and prior to 5.37.0 did not sufficiently sanitize query parameters when filtering content via relational fields. An unauthenticated attacker could use the `where` query parameter on any publicly-accessible content-type with an `updatedBy` (or other admin-relation) field to perform a boolean-oracle attack against private fields on the joined `admin_users` table, including the `resetPasswordToken` field. Extracting an admin reset token via this oracle made full administrative account takeover possible without authentication. When a filter such as `where[updatedBy][resetPasswordToken][$startsWith]=a` was applied to a public Content API endpoint, the underlying query generation performed a `LEFT JOIN` against the `admin_users` table and emitted a `WHERE` clause referencing the joined column. The query parameter sanitization layer did not block operator chains that traversed into relational target schemas the caller had no read permission on, allowing the response count to be used as a one-bit oracle on any admin-table field. The patch in version 5.37.0 introduces explicit query-parameter sanitization at the controller and service boundary via three new primitives: `strictParam`, `addQueryParams`, and `addBodyParams`. Operator chains that traverse into restricted relational targets are now rejected before reaching the database.
Strapi versions before 5.37.0 allow unauthenticated attackers to extract admin reset tokens through boolean-oracle attacks on relational field filters, enabling full administrative account takeover. The vulnerability affects publicly accessible content-types with admin-relation fields like updatedBy.
تحتوي نسخ Strapi من 4.0.0 إلى 5.36.x على ثغرة في تصفية المحتوى عبر الحقول العلائقية حيث لا يتم تطهير معاملات الاستعلام بشكل كافٍ. يمكن للمهاجمين استخدام هجمات boolean-oracle للاستعلام عن الحقول الخاصة في جدول admin_users، بما في ذلك رموز إعادة تعيين كلمات المرور. يؤدي استخراج رمز إعادة التعيين إلى الاستيلاء الكامل على حسابات المسؤول دون الحاجة إلى المصادقة.
إصدارات Strapi السابقة للإصدار 5.37.0 تسمح للمهاجمين غير المصرح لهم باستخراج رموز إعادة تعيين المسؤول من خلال هجمات boolean-oracle على مرشحات الحقول العلائقية، مما يتيح الاستيلاء الكامل على حسابات المسؤول. يؤثر الثغرة على أنواع المحتوى التي يمكن الوصول إليها علنًا والتي تحتوي على حقول علاقات إدارية مثل updatedBy.
Upgrade Strapi to version 5.37.0 or later immediately. If immediate upgrade is not possible, disable public access to content-types containing admin-relation fields or implement strict query parameter validation and sanitization on relational field filters. Review access logs for suspicious where parameter usage patterns.
قم بترقية Strapi إلى الإصدار 5.37.0 أو أحدث على الفور. إذا لم يكن الترقية الفورية ممكنة، قم بتعطيل الوصول العام إلى أنواع المحتوى التي تحتوي على حقول علاقات إدارية أو قم بتنفيذ التحقق الصارم من صحة معاملات الاستعلام والتطهير على مرشحات الحقول العلائقية. راجع سجلات الوصول للأنماط المريبة في استخدام معاملات where.