The Admin Columns plugin for WordPress is vulnerable to PHP Object Injection leading to Remote Code Execution in versions up to and including 7.0.18. This is due to the use of `unserialize()` without an `allowed_classes` restriction in the `IdsToCollection::get_ids_from_string()` function, which processes attacker-controlled post meta values without proper validation. This makes it possible for authenticated attackers with Contributor-level access and above to inject a serialized PHP object into a post's custom meta field and trigger arbitrary code execution by exploiting a bundled POP gadget chain, resulting in remote code execution as the web server user.
CVE-2026-7654 is a critical PHP Object Injection vulnerability in the Admin Columns WordPress plugin (versions ≤7.0.18) that allows authenticated contributors to achieve Remote Code Execution through malicious serialized objects in post meta fields. With an 8.8 CVSS score and no patch currently available, this poses an immediate threat to WordPress installations in Saudi Arabia, particularly those managing sensitive government, banking, and healthcare content. The vulnerability requires only contributor-level access, making it exploitable by a broad range of authenticated users.
IMMEDIATE ACTIONS:
1. Audit all WordPress installations in your organization for Admin Columns plugin presence and version (check wp-content/plugins/admin-columns/admin-columns.php for version number)
2. Identify all users with Contributor role or above and review their recent post meta modifications
3. Implement Web Application Firewall (WAF) rules to block serialized object patterns in POST requests containing 'meta' parameters
4. Enable WordPress security logging to monitor post meta modifications
PATCHING GUIDANCE:
1. Disable the Admin Columns plugin immediately if not critical to operations (rename plugin folder or use wp-cli: wp plugin deactivate admin-columns)
2. Monitor official Admin Columns GitHub repository and WordPress.org plugin page for security updates
3. When patch becomes available, test in staging environment before production deployment
4. Consider alternative column management plugins with better security practices
COMPENSATING CONTROLS (until patch available):
1. Restrict Contributor role assignments to trusted internal staff only; audit existing assignments
2. Implement role-based access control limiting post meta editing capabilities
3. Use WordPress security plugins (Wordfence, Sucuri) to monitor for suspicious serialized object patterns
4. Deploy database activity monitoring to detect unusual post meta value modifications
5. Implement file integrity monitoring on wp-content/plugins/admin-columns/ directory
6. Use WordPress hardening: disable file editing (DISALLOW_FILE_EDIT = true in wp-config.php)
DETECTION RULES:
1. Monitor POST requests containing 'O:' or 'C:' patterns in meta field values (serialized object indicators)
2. Alert on post meta modifications containing 'unserialize' or PHP object notation
3. Track execution of suspicious PHP functions from web server process (exec, system, passthru, shell_exec)
4. Monitor for unexpected child processes spawned by PHP-FPM or Apache processes
5. Log all database INSERT/UPDATE operations on wp_postmeta table with serialized data patterns
الإجراءات الفورية:
1. تدقيق جميع تثبيتات WordPress في مؤسستك للتحقق من وجود مكون Admin Columns والإصدار (تحقق من wp-content/plugins/admin-columns/admin-columns.php لرقم الإصدار)
2. تحديد جميع المستخدمين الذين لديهم دور المساهم أو أعلى ومراجعة تعديلاتهم الأخيرة على بيانات المنشورات
3. تنفيذ قواعد جدار حماية تطبيقات الويب لحظر أنماط الكائنات المسلسلة في طلبات POST التي تحتوي على معاملات 'meta'
4. تفعيل تسجيل أمان WordPress لمراقبة تعديلات بيانات المنشورات
إرشادات التصحيح:
1. تعطيل مكون Admin Columns فوراً إذا لم يكن حرجاً للعمليات (إعادة تسمية مجلد المكون أو استخدام wp-cli: wp plugin deactivate admin-columns)
2. مراقبة مستودع Admin Columns الرسمي على GitHub وصفحة المكون على WordPress.org للتحديثات الأمنية
3. عند توفر التصحيح، اختبره في بيئة التطوير قبل نشره في الإنتاج
4. النظر في مكونات بديلة لإدارة الأعمدة بممارسات أمنية أفضل
الضوابط التعويضية (حتى توفر التصحيح):
1. تقييد تعيينات دور المساهم للموظفين الداخليين الموثوقين فقط؛ تدقيق التعيينات الحالية
2. تنفيذ التحكم في الوصول القائم على الأدوار لتحديد قدرات تحرير بيانات المنشورات
3. استخدام مكونات أمان WordPress (Wordfence, Sucuri) لمراقبة الأنماط المريبة للكائنات المسلسلة
4. نشر مراقبة نشاط قاعدة البيانات للكشف عن تعديلات قيم بيانات المنشورات غير المعتادة
5. تنفيذ مراقبة سلامة الملفات على دليل wp-content/plugins/admin-columns/
6. استخدام تقسية WordPress: تعطيل تحرير الملفات (DISALLOW_FILE_EDIT = true في wp-config.php)
قواعد الكشف:
1. مراقبة طلبات POST التي تحتوي على أنماط 'O:' أو 'C:' في قيم حقول meta (مؤشرات الكائنات المسلسلة)
2. التنبيه على تعديلات بيانات المنشورات التي تحتوي على 'unserialize' أو تدوين كائنات PHP
3. تتبع تنفيذ وظائف PHP المريبة من عملية خادم الويب (exec, system, passthru, shell_exec)
4. مراقبة العمليات الفرعية غير المتوقعة التي يتم إطلاقها من عمليات PHP-FPM أو Apache
5. تسجيل جميع عمليات INSERT/UPDATE على جدول wp_postmeta مع أنماط البيانات المسلسلة