The Gravity SMTP plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 2.1.4. This is due to a REST API endpoint registered at /wp-json/gravitysmtp/v1/tests/mock-data with a permission_callback that unconditionally returns true, allowing any unauthenticated visitor to access it. When the ?page=gravitysmtp-settings query parameter is appended, the plugin's register_connector_data() method populates internal connector data, causing the endpoint to return approximately 365 KB of JSON containing the full System Report. This makes it possible for unauthenticated attackers to retrieve detailed system configuration data including PHP version, loaded extensions, web server version, document root path, database server type and version, WordPress version, all active plugins with versions, active theme, WordPress configuration details, database table names, and any API keys/tokens configured in the plugin.
The Gravity SMTP WordPress plugin (versions ≤2.1.4) exposes a critical information disclosure vulnerability through an unauthenticated REST API endpoint that returns 365 KB of sensitive system configuration data including API keys, database details, and plugin inventory. This allows attackers to perform reconnaissance without authentication, significantly lowering the barrier for subsequent targeted attacks. The vulnerability poses immediate risk to WordPress installations using this plugin across Saudi organizations.
IMMEDIATE ACTIONS:
1. Audit all WordPress installations for Gravity SMTP plugin presence and version (≤2.1.4 are vulnerable)
2. Disable the plugin immediately if no patch is available: wp-cli plugin deactivate gravitysmtp
3. Review access logs for /wp-json/gravitysmtp/v1/tests/mock-data requests to identify potential reconnaissance activity
4. Rotate all API keys, SMTP credentials, and database passwords exposed through the plugin
5. Check WordPress user accounts for unauthorized additions
PATCHING GUIDANCE:
- Monitor Gravity SMTP GitHub repository and official WordPress plugin page for security updates
- Once patch is available, update immediately to version >2.1.4
- Test in staging environment before production deployment
COMPENSATING CONTROLS (if patch unavailable):
1. Implement Web Application Firewall (WAF) rules to block requests to /wp-json/gravitysmtp/v1/tests/mock-data
2. Restrict REST API access via .htaccess or nginx configuration: deny access to /wp-json/ for non-authenticated users
3. Implement IP whitelisting for REST API endpoints if possible
4. Disable REST API entirely if not required: add define('REST_API_ENABLED', false) to wp-config.php
5. Use security plugins (Wordfence, Sucuri) to monitor and block suspicious API requests
DETECTION RULES:
- Monitor for GET requests to /wp-json/gravitysmtp/v1/tests/mock-data in web server logs
- Alert on any requests containing ?page=gravitysmtp-settings parameter
- Track failed authentication attempts followed by REST API reconnaissance
- Monitor for unusual data exfiltration patterns post-reconnaissance
الإجراءات الفورية:
1. تدقيق جميع تثبيتات WordPress للتحقق من وجود مكون Gravity SMTP والإصدار (الإصدارات ≤2.1.4 معرضة للخطر)
2. تعطيل المكون فوراً إذا لم يكن هناك تصحيح متاح: wp-cli plugin deactivate gravitysmtp
3. مراجعة سجلات الوصول لطلبات /wp-json/gravitysmtp/v1/tests/mock-data لتحديد نشاط الاستطلاع المحتمل
4. تدوير جميع مفاتيح API وبيانات اعتماد SMTP وكلمات مرور قاعدة البيانات المكشوفة من خلال المكون
5. التحقق من حسابات مستخدمي WordPress للإضافات غير المصرح بها
إرشادات التصحيح:
- مراقبة مستودع Gravity SMTP على GitHub وصفحة المكون الرسمية في WordPress للتحديثات الأمنية
- عند توفر التصحيح، قم بالتحديث فوراً إلى الإصدار >2.1.4
- اختبر في بيئة التجريب قبل نشر الإنتاج
الضوابط البديلة (إذا لم يكن التصحيح متاحاً):
1. تنفيذ قواعد جدار حماية تطبيقات الويب (WAF) لحظر الطلبات إلى /wp-json/gravitysmtp/v1/tests/mock-data
2. تقييد وصول REST API عبر .htaccess أو تكوين nginx: رفض الوصول إلى /wp-json/ للمستخدمين غير المصرح لهم
3. تنفيذ القائمة البيضاء للعناوين IP لنقاط نهاية REST API إن أمكن
4. تعطيل REST API بالكامل إذا لم يكن مطلوباً: أضف define('REST_API_ENABLED', false) إلى wp-config.php
5. استخدم مكونات الأمان (Wordfence, Sucuri) لمراقبة وحظر طلبات API المريبة
قواعد الكشف:
- مراقبة طلبات GET إلى /wp-json/gravitysmtp/v1/tests/mock-data في سجلات خادم الويب
- تنبيه على أي طلبات تحتوي على معامل ?page=gravitysmtp-settings
- تتبع محاولات المصادقة الفاشلة متبوعة باستطلاع REST API
- مراقبة أنماط تسرب البيانات غير العادية بعد الاستطلاع