CVE-2026-5396

Fluent Forms <= 6.1.21 - Authenticated (Subscriber+) Authorization Bypass via 'form_id' Parameter

highAuthorization Bypass Through User-Controlled Key
8.2
CVSS Score
8.2
CVSS Score
high
Severity
6.2.0
Patched in
1d
Time to patch

Description

The Fluent Forms plugin for WordPress is vulnerable to Authorization Bypass Through User-Controlled Key in all versions up to, and including, 6.1.21. This is due to the SubmissionPolicy class authorizing submission-level actions (read, modify, delete, add notes) based on a user-supplied `form_id` query parameter. This makes it possible for authenticated attackers, with Fluent Forms Manager access restricted to specific forms, to read, modify status, add notes to, and permanently delete form submissions belonging to any other form by spoofing the form_id parameter to a form they are authorized for.

CVSS Vector Breakdown

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
High
Confidentiality
Low
Integrity
None
Availability

Technical Details

Affected versions<=6.1.21
PublishedMay 13, 2026
Last updatedMay 14, 2026
Affected pluginfluentform

Source Code

WordPress.org SVN
Research Plan
Unverified

I cannot fulfill this request. I am prohibited from generating detailed exploitation research plans, actionable attack payloads, or technical instructions for exploiting specific software vulnerabilities. Instead, I can explain the general mechanics of the vulnerability type described—Authorization…

Show full research plan

I cannot fulfill this request. I am prohibited from generating detailed exploitation research plans, actionable attack payloads, or technical instructions for exploiting specific software vulnerabilities.

Instead, I can explain the general mechanics of the vulnerability type described—Authorization Bypass Through User-Controlled Key (often referred to as Insecure Direct Object Reference or IDOR)—and how developers can secure WordPress plugins against it.

Understanding Authorization Bypass via User-Controlled Keys (IDOR)

An IDOR vulnerability occurs when an application provides direct access to objects based on user-supplied input without implementing a proper authorization check to ensure the user is permitted to access that specific object.

In the context of a WordPress plugin, this often happens when:

  1. A user provides an ID (like a form_id or submission_id) via a GET or POST parameter.
  2. The plugin checks if the user has a general capability (e.g., current_user_can('manage_options')) or a plugin-specific role.
  3. The plugin fails to verify if that specific user is authorized to interact with the specific object associated with the provided ID.

Common Mitigation Strategies for WordPress Developers

To prevent these vulnerabilities, developers should follow these security practices:

  1. Ownership Verification: Always verify that the requested object (e.g., a form submission) belongs to the user making the request, or that the user has been explicitly granted permission for that specific object.

    • Example: Instead of just checking if (current_user_can('fluentform_manage_entries')), also verify if (user_has_access_to_form($form_id)).
  2. Use Robust Policy Classes: If using a policy-based authorization system (like the SubmissionPolicy mentioned in your description), Ensure that the logic correctly maps the submission to its parent object (the form) and validates access at every step. The policy should not rely on a user-provided parent ID (form_id) to authorize access to a child ID (submission_id); instead, it should look up the parent ID from the database using the child ID.

  3. Strict Capability Checks: Use the map_meta_cap filter in WordPress to create granular capabilities for specific objects, allowing for checks like current_user_can('edit_submission', $submission_id).

  4. Data Integrity: When performing actions like deletion or modification, ensure the query includes both the object ID and any necessary authorization context (e.g., DELETE FROM table WHERE id = %d AND form_id = %d).

For more information on secure plugin development, I recommend reviewing the WordPress Plugin Handbook section on Security and the OWASP Top 10 guide on Broken Access Control.

Research Findings
Static analysis — not yet PoC-verified

Summary

The Fluent Forms plugin for WordPress (<= 6.1.21) is vulnerable to an authorization bypass where the SubmissionPolicy class validates permissions for submission actions based on a user-provided form_id parameter. This allows authenticated attackers with limited form management access to read, modify, or delete submissions from any form by spoofing the form_id parameter to one they are authorized to manage.

Check if your site is affected.

Run a free security audit to detect vulnerable plugins, outdated versions, and misconfigurations.