WordPress plugins play a vital role in extending the platform’s capabilities, yet they are frequently a weak point in site security. One such case is the Kali Forms plugin, a drag-and-drop form builder currently active on over 30,000 installations. A critical vulnerability, now assigned CVE-2025-3201, was discovered in the plugin that permits users with only Contributor-level privileges to inject and store malicious JavaScript. This XSS payload can be used to hijack administrator sessions, ultimately leading to the creation of rogue admin accounts and full site compromise.

CVECVE-2025-3201
Kali Forms < 2.4.3
CriticalHigh
All Time1 386 783
Active installations30 000+
Publicly PublishedMay 30, 2025
Last UpdatedMay 30, 2025
ResearcherDmitrii Ignatyev
OWASP TOP-10A7: Cross-Site Scripting (XSS)
PoCYes
ExploitNo
Reference https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-3201
https://wpscan.com/vulnerability/4248289f-36d2-41c5-baf6-bb2c630482ef/
Plugin Security Certification by CleanTalk
Logo of the plugin

Join the community of developers who prioritize security. Highlight your plugin in the WordPress catalog.

PSC by Cleantalk

Timeline

March 28, 2025Plugin testing and vulnerability detection in the Contact Form builder with drag & drop for WordPress – Kali Forms have been completed
March 28, 2025I contacted the author of the plugin and provided a vulnerability PoC with a description and recommendations for fixing
May 30, 2025Registered CVE-2025-3201

Discovery of the Vulnerability

During routine plugin testing, the vulnerability was discovered in how user-supplied data is handled in the form builder. Specifically, the plugin fails to properly sanitize option labels added within the Dropdown field component. This allows a Contributor-level user—who by default should have minimal access—to insert JavaScript event handlers into form options that are later rendered without output escaping. The fact that this input can be stored and executed on the frontend from a simple post or page makes it particularly dangerous and easy to trigger.

Understanding of XSS attack’s

Cross-Site Scripting (XSS) remains one of the most impactful vulnerabilities in the WordPress plugin ecosystem. Unlike Reflected XSS, Stored XSS persists in the database and is served to all users visiting the affected page or interface. Attackers often use this vector to execute JavaScript that can perform administrative actions through session hijacking or API abuse. A well-crafted payload can silently create new administrator users, change plugin settings, or inject persistent malware into the site — especially when paired with roles that lack unfiltered_html, such as Contributors.

Exploiting the XSS Vulnerability

To exploit CVE-2025-3201, an attacker with contributor+ privileges:

POC:

1) Create a new Form with "Dropdown" block
2) Add here new "Choice" in "Options" settings with following payload: 123" onclick=alert(1)//
3) To trigger XSS you should put shortcode of new Form to any Post/Page and click on option.

____

This vulnerability carries severe real-world implications. A Contributor, often considered a low-risk role, can leverage this flaw to escalate privileges without needing any approval from higher-level users. Once the script is executed in an admin’s session, it can issue AJAX or REST calls to perform privileged actions — from installing plugins to creating new administrator accounts. This effectively breaks WordPress’s access control model, giving attackers full control of the site with minimal initial privileges.

Recommendations for Improved Security

To mitigate this and similar vulnerabilities:

  • Sanitize all user inputs, especially those rendered in dynamic interfaces like forms.
  • Escape output consistently using functions such as esc_html()esc_attr(), or wp_kses() based on context.
  • Limit frontend script execution by disallowing inline events like onclickonmouseover, etc., in form labels or choices.
  • Reassess Contributor permissions in your site’s security model — restrict form creation and shortcode usage for low-privilege users.
  • Update immediately to the patched version when available, and monitor access logs for any unusual behavior.

To prevent this type of attacks vendor used our methods of prevention.

By taking proactive measures to address Stored XSS vulnerabilities like CVE-2025-3201, WordPress website owners can enhance their security posture and safeguard against potential exploitation. Stay vigilant, stay secure.

#WordPressSecurity #StoredXSS #WebsiteSafety #StayProtected #HighVulnerability

Use CleanTalk solutions to improve the security of your website

Dmitrii I.
CVE-2025-3201 – Kali Forms – Stored XSS to Admin Account Creation (Contributor+) – POC

Leave a Reply

Your email address will not be published. Required fields are marked *