CVE-2026-9187
Description
The Abandoned Contact Form 7 plugin for WordPress is vulnerable to unauthorized arbitrary post deletion in versions up to, and including, 2.2. This is due to a missing capability check and missing nonce validation in the action__remove_abandoned() function, which is registered to both the wp_ajax_remove_abandoned and wp_ajax_nopriv_remove_abandoned hooks. The handler takes a user-supplied recover_id parameter from $_POST and passes it directly to wp_delete_post() with the force-delete flag set to true, without verifying that the ID belongs to the plugin's own cf7af_data post type. This makes it possible for unauthenticated attackers to permanently delete arbitrary posts, pages, or other content on the affected site by sending a single admin-ajax.
Summary dbcve.org
The Abandoned Contact Form 7 plugin for WordPress registers an AJAX handler (action__remove_abandoned) to both authenticated and unauthenticated hooks. The handler accepts a recover_id parameter directly from $_POST and passes it to wp_delete_post() with force deletion enabled, without verifying the post belongs to the plugin's cf7af_data post type, validating nonces, or checking user capabilities. This allows any visitor to permanently delete arbitrary posts, pages, or custom post types.
Mitigation
Update to the latest version of the plugin once available. Until then, consider disabling the plugin or restricting access to wp-admin/admin-ajax.php at the server level to block unauthenticated requests.