The WP Recipe Maker plugin for WordPress is vulnerable to an Insecure Direct Object Reference (IDOR) in versions up to, and including, 10.3.2. This is due to the /wp-json/wp-recipe-maker/v1/integrations/instacart REST API endpoint's permission_callback being set to __return_true and a lack of subsequent authorization or ownership checks on the user-supplied recipeId. This makes it possible for unauthenticated attackers to overwrite arbitrary post metadata (wprm_instacart_combinations) for any post ID on the site via the recipeId parameter.
The WP Recipe Maker plugin (versions ≤10.3.2) contains an Insecure Direct Object Reference (IDOR) vulnerability in its REST API endpoint that allows unauthenticated attackers to modify arbitrary post metadata without authorization. This vulnerability enables attackers to manipulate recipe data and potentially inject malicious content across WordPress sites using this plugin. While currently unpatched, the medium CVSS score (5.3) reflects the need for immediate compensating controls.
Immediate Actions:
1. Audit all WordPress installations using WP Recipe Maker plugin to identify affected versions (≤10.3.2)
2. Disable the /wp-json/wp-recipe-maker/v1/integrations/instacart REST API endpoint immediately if not actively used
3. Review post metadata (wprm_instacart_combinations) for unauthorized modifications using database queries
Compensating Controls (until patch available):
1. Implement Web Application Firewall (WAF) rules to block requests to /wp-json/wp-recipe-maker/v1/integrations/instacart endpoint
2. Restrict REST API access to authenticated users only via WordPress security plugins (e.g., Wordfence, Sucuri)
3. Apply rate limiting to REST API endpoints to prevent automated exploitation
4. Implement IP whitelisting for REST API access if Instacart integration is required
5. Monitor WordPress logs for suspicious POST/PUT requests to the vulnerable endpoint
Detection Rules:
1. Alert on any unauthenticated requests to /wp-json/wp-recipe-maker/v1/integrations/instacart
2. Monitor for POST/PUT requests with recipeId parameter from non-admin users
3. Track changes to wprm_instacart_combinations post metadata outside normal admin activity
4. Log all REST API calls with 200 responses from the vulnerable endpoint
Long-term:
1. Plan migration away from WP Recipe Maker or await security patch
2. Consider alternative recipe management plugins with proper authorization checks
3. Implement WordPress security hardening per NCA ECC guidelines
الإجراءات الفورية:
1. تدقيق جميع تثبيتات WordPress التي تستخدم مكون WP Recipe Maker لتحديد الإصدارات المتأثرة (≤10.3.2)
2. تعطيل نقطة نهاية REST API /wp-json/wp-recipe-maker/v1/integrations/instacart فوراً إذا لم تكن قيد الاستخدام النشط
3. مراجعة البيانات الوصفية للمنشورات (wprm_instacart_combinations) للتحقق من التعديلات غير المصرح بها باستخدام استعلامات قاعدة البيانات
الضوابط التعويضية (حتى توفر التصحيح):
1. تنفيذ قواعد جدار حماية تطبيقات الويب (WAF) لحجب الطلبات إلى نقطة النهاية /wp-json/wp-recipe-maker/v1/integrations/instacart
2. تقييد وصول REST API للمستخدمين المصرح لهم فقط عبر مكونات أمان WordPress (مثل Wordfence و Sucuri)
3. تطبيق تحديد معدل على نقاط نهاية REST API لمنع الاستغلال الآلي
4. تنفيذ القائمة البيضاء للعناوين IP لوصول REST API إذا كان تكامل Instacart مطلوباً
5. مراقبة سجلات WordPress للطلبات المريبة POST/PUT إلى نقطة النهاية الضعيفة
قواعد الكشف:
1. تنبيه على أي طلبات غير مصرح بها إلى /wp-json/wp-recipe-maker/v1/integrations/instacart
2. مراقبة طلبات POST/PUT باستخدام معامل recipeId من المستخدمين غير الإداريين
3. تتبع التغييرات على البيانات الوصفية wprm_instacart_combinations خارج نشاط الإدارة العادي
4. تسجيل جميع استدعاءات REST API برد 200 من نقطة النهاية الضعيفة
المدى الطويل:
1. التخطيط للهجرة بعيداً عن WP Recipe Maker أو انتظار تصحيح الأمان
2. النظر في مكونات إدارة الوصفات البديلة مع فحوصات التفويض المناسبة
3. تنفيذ تقسية أمان WordPress وفقاً لإرشادات NCA ECC