Executive brief
Admin Columns is a WordPress plugin used to manage and customize the display of website content in the administrative dashboard. A security flaw allows users with basic contributor-level access to run unauthorized commands on the web server. This could lead to a complete takeover of the website, theft of sensitive data, or disruption of services.
Technical details
The Admin Columns plugin for WordPress is vulnerable to PHP Object Injection in versions up to and including 7.0.18. The root cause is the use of the `unserialize()` function without an `allowed_classes` restriction within the `IdsToCollection::get_ids_from_string()` function. This function processes attacker-controlled post meta values without sufficient validation. An authenticated attacker with Contributor-level permissions or higher can inject a serialized PHP object into a post's custom meta field. By leveraging a bundled POP (Property Oriented Programming) gadget chain, the attacker can achieve remote code execution (RCE) with the privileges of the web server user.
Affected products
- CodePress Admin Columns up to and including 7.0.18
Timeline
- 2026-06-05: disclosed
- 2026-06-05: advisory
References
- https://plugins.trac.wordpress.org/browser/codepress-admin-columns/tags/7.0.16/classes/Formatter/IdsToCollection.php
- https://plugins.trac.wordpress.org/browser/codepress-admin-columns/tags/7.0.16/classes/Formatter/Meta.php
- https://plugins.trac.wordpress.org/browser/codepress-admin-columns/tags/7.0.16/vendor/laravel/serializable-closure/src/Serializers/Native.php
- https://plugins.trac.wordpress.org/browser/codepress-admin-columns/tags/7.0.16/vendor/laravel/serializable-closure/src/Support/ClosureStream.php
- https://plugins.trac.wordpress.org/browser/codepress-admin-columns/trunk/classes/Formatter/IdsToCollection.php
- https://plugins.trac.wordpress.org/browser/codepress-admin-columns/trunk/classes/Formatter/Meta.php
- https://plugins.trac.wordpress.org/browser/codepress-admin-columns/trunk/vendor/laravel/serializable-closure/src/Serializers/Native.php