/

CVE-2026-15989

Severity:

CRITICAL RISK

(9.8)

Privilege Escalation (CWE-269) in Super Forms Plugin

CVE-2026-15989

Deferred

Vulnerability type

Category:

Privilege Escalation

CWE:

CWE-269

Impact:

Unauthorized Administrator account creation

Severity:

CRITICAL RISK

(9.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A critical privilege-escalation vulnerability in the Super Forms – Drag & Drop Form Builder WordPress plugin allows unauthenticated visitors to create accounts with the Administrator role. The issue becomes risky when a published registration form uses the affected Register & Login add-on and accepts a client-controlled role value without authorization checks.

Affected context

The vulnerability occurs in WordPress installations using the Super Forms plugin with the Register & Login add-on and a published registration form. It affects configurations where registration requests reach the vulnerable role-handling logic and the submitted role is copied into the user data passed to WordPress account-creation APIs without being constrained by the configured registration role.

Exploit preconditions

  • Attack surface: A publicly accessible Super Forms registration form
  • Required access: No authentication is required
  • Trigger point: Processing a registration request by the Register & Login add-on
  • Why exploitation is possible: A client-submitted role value is accepted into the user-data structure without an allow-list, comparison with the configured registration role, or a capability check

Why this happens

The underlying bug is improper privilege assignment from untrusted input. The registration handler permits a client-controlled role field to flow into the data passed to wp_insert_user() instead of deriving the role from trusted server-side configuration. This maps to CWE-269, Improper Privilege Management, because an unauthenticated user can influence the privilege level assigned to a newly created account.

Potential impact

  • An unauthenticated attacker may create an Administrator account
  • Attackers could modify WordPress content, settings, and users
  • The site could be used to deploy malicious code or persistent backdoors
  • Sensitive site data may be accessed or altered
  • The WordPress installation could be used to attack connected systems

General mitigation guidance

Mitigation generally focuses on ensuring that account privileges are derived

from trusted server-side policy rather than registration input.

Common defensive patterns include:

  • Ignoring or rejecting client-supplied role fields during public registration
  • Applying a strict server-side allow-list of permitted registration roles
  • Enforcing the administrator-configured registration role at the final user-creation boundary
  • Requiring explicit authorization and capability checks before assigning elevated roles
  • Applying least privilege to newly registered accounts and reviewing existing user roles
  • Restricting public registration and protecting administrative workflows where appropriate

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis for user-controlled fields flowing into account-creation APIs
  • Code review checks for role assignment based on request parameters
  • Searches for missing allow-lists, authorization checks, and server-side role enforcement
  • Web logs containing unexpected role parameters in registration requests
  • Audits of recently created users and changes to privileged WordPress accounts
  • Policy checks that require privilege decisions to be made from trusted configuration

Sources

SourceLink
github.comgithub.com/RensTillmann/super-forms/pull/205
wordfence.comwordfence.com/threat-intel/vulnerabilities/id/7eb62d35-3f0e-4733-8f7f-723d0f25b710?source=cve

Frequently asked

questions

Yes. A remote attacker may exploit the issue through a publicly accessible

Super Forms registration form, without needing an existing account.

No authentication is generally required. The relevant condition is that the

site exposes a registration form using the affected registration workflow.

Do not trust role values from client requests. Derive the assigned role from

server-side configuration, enforce a narrow allow-list, and require explicit

authorization for any elevated role assignment.

Treat privilege-related fields as server-controlled, validate them at the

final account-creation boundary, apply least privilege by default, and

monitor account creation and role changes.

Find out what's already
exploitable in your codebase.