Custom Contact Forms <= 7.16 - Missing Authorization to Authenticated (Contributor+) Arbitrary Post Deletion and Post Meta Modification via Nested 'fields[].ID' / 'choices[].ID' Parameters
Strategic Overview
- Status
- Patched in 7.16.1
- Affected Plugin
- Custom Contact Forms
- Affected Version
<= 7.16- CVSS
- 4.3Medium
- Weakness type
- CWE-862 · Missing Authorization
- CVE
CVE-2026-75018
At a glance
CVE-2026-75018 is a medium-severity Missing Authorization vulnerability in the Custom Contact Forms WordPress plugin, affecting versions <= 7.16. It carries a CVSS score of 4.3 (reachable over the network; low attack complexity). Exploitation requires an authenticated account at Contributor level or above. The issue is fixed in version 7.16.1; sites on affected versions should update now. Disclosed September 2026, reported by Wordfence PRISM.
Vulnerability Overview
The Custom Contact Forms plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 7.16. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for authenticated attackers, with contributor-level access and above, to permanently force-delete arbitrary posts of any post type (including pages, administrator-authored posts, and WooCommerce products) and write arbitrary ccf_field_* post meta onto any post regardless of ownership or post type. The top-level form ID is checked via edit_post/publish_posts, but the nested fields[].ID and choices[].ID paths processed by _create_and_map_fields() and _create_and_map_choices() carry no equivalent capability or post-type guard, leaving those sinks fully exposed while delete_item() and delete_submission() contain explicit post-type restriction fixes demonstrating the developer's awareness of scoping requirements.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no interaction from a victim user.
CWE-862: Missing Authorization
Custom Contact Forms <= 7.16 carries this weakness at _create_and_map_fields(), and reaching it takes an account at Contributor level or above. A missing authorization check means a function is reachable by anyone who can reach the endpoint, because the code never asks whether the caller is allowed to perform the action.
Any user who can reach the endpoint gets to run an action reserved for higher-privileged roles, from reading protected data to changing settings or content. For Custom Contact Forms the fix is 7.16.1: builds <= 7.16 are affected, anything from 7.16.1 onward is not.
Remediation
Update to version 7.16.1, or a newer patched version
How does WordSec protect against this?
Because it turns on account access, WordSec's login security is the relevant layer: role-based two-factor, captcha and brute-force limits raise the cost of getting the account this needs. None of that substitutes for the fix: Custom Contact Forms 7.16.1 closes this, and updating the plugin is the step that ends it.
- Login Security
- Alerts
External References
Related records
Same weakness class
Other vulnerabilities in Custom Contact Forms
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C