Unauthenticated Account Takeover in WordPress Kirki Plugin Password Reset API
CVE-2026-8206 is a critical privilege escalation vulnerability in the Kirki – Freeform Page Builder, Website Builder & Customizer plugin for WordPress affecting versions 6.0.0 through 6.0.6. The flaw is in the plugin’s password reset workflow exposed through its custom REST API, specifically the forgot-password handling described as handle_forgot_password(). When a password reset request includes a valid username, the plugin resolves the target account by username but improperly accepts and uses an arbitrary email address supplied in the same request without verifying that it matches the account’s registered email. As a result, the application generates a valid password reset token for the victim account and sends the reset link to an attacker-controlled mailbox. The issue is exposed through an unauthenticated REST endpoint used for frontend account management, enabling remote exploitation against arbitrary registered users, including administrators.
Are you exposed to this one?
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
Impact, mitigation & remediation
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
Impact
What an attacker gets, and what they’ve been doing with it.
Mitigation
If you can’t patch tonight, do this now.
Remediation
Patch, then assume compromise.
Exploits
2 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos.
Repository contains a single Python exploit script and a README. The script is a multithreaded mass-exploitation tool targeting CVE-2026-8206 in the Kirki WordPress plugin (versions 6.0.6 and earlier). Its workflow is: normalize target URLs; detect Kirki installation/version by requesting plugin readme.txt or kirki.min.css under both 'kirki' and 'kirki-test' plugin directories; enumerate usernames (per README via /wp-json/wp/v2/users, with fallback to 'admin'); harvest nonce-like values from multiple public pages using many regex patterns; then submit POST requests to the vulnerable REST endpoint /wp-json/KirkiComponentLibrary/v1/kirki-forgot-password using the chosen username and an attacker-controlled email address. Successful exploitation is determined by a positive HTTP/application response indicating the email was sent, and successful targets are appended to res.txt. The code disables TLS verification warnings, uses requests plus ThreadPoolExecutor for concurrency, and is intended for bulk scanning/exploitation from a supplied targets file. This is a real exploit rather than a detector: its end goal is account takeover by rerouting password reset emails to the operator's mailbox.
This repository contains a single Python exploit script, CVE-2026-8206.py, implementing an automated web attack against a WordPress Kirki forgot-password workflow. The script defines a KirkiAutoExploit class with three main stages: (1) build a list of likely public pages that may expose a nonce, (2) fetch those pages and regex-scrape an X-WP-ELEMENT-NONCE or generic nonce value from HTML/JavaScript, and (3) submit a crafted POST request to the Kirki REST endpoint /wp-json/KirkiComponentLibrary/v1/kirki-forgot-password. The POST body includes a target username and an attacker-controlled email address, plus a JSON-encoded email body referencing a reset_link token, with the apparent goal of redirecting the password reset email to the attacker. The script is operational rather than a mere PoC because it performs the full attack flow automatically, including nonce discovery, request construction, and response handling. It is not a framework module and has a single obvious entry point under the __main__ block, taking target URL, victim username, and attacker email as command-line arguments. No shellcode or post-exploitation payload is present; the exploit capability is account takeover via password reset abuse on exposed vulnerable Kirki versions.
Affected products & vendors
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
Recent activity
37 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A critical privilege escalation vulnerability in the WordPress Kirki plugin that allows unauthenticated attackers to reset arbitrary user passwords and hijack accounts, including administrator accounts, via a flawed REST API password reset mechanism.
A critical privilege escalation and account takeover vulnerability in the Kirki WordPress plugin caused by a flawed password reset mechanism that lets unauthenticated attackers send reset tokens for valid users to attacker-controlled email addresses.
A critical unauthenticated privilege escalation vulnerability in the Kirki-related WordPress frontend page building extension caused by a logic flaw in a custom REST API password reset workflow, allowing attackers to take over privileged WordPress accounts.
A critical unauthenticated account takeover vulnerability in the Kirki WordPress plugin's forgot-password REST API that allows an attacker to redirect password reset emails to an attacker-controlled address and reset arbitrary user passwords.
The version that knows your environment.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.