A newly disclosed vulnerability in the Elementor Website Builder plugin demonstrates how a seemingly narrow Cross-Site Request Forgery issue can expand into full administrative compromise when it affects the authentication logic surrounding WordPress REST APIs.
The flaw affects Elementor versions 4.3.0 and 4.3.1 and has been fixed in version 4.3.2. Elementor is active on more than 10 million WordPress websites, while the two affected releases may be present on as many as roughly two million sites. The vulnerability was reported to Elementor through Patchstack on September 22, with a fix released just two days later.
What makes this vulnerability particularly dangerous is that an attacker does not need to authenticate to the WordPress site directly. Instead, the attacker needs to convince an already authenticated WordPress user to open a specially crafted link. If that victim has administrator privileges, the request can be executed using the victim’s existing session and permissions.
On a default installation, this can result in the creation of a new administrator account controlled by the attacker.
The attack does not require JavaScript, an attacker-controlled webpage, or a hidden form. A normal hyperlink is enough. That link could potentially be delivered through email, an instant message, a forum post, or even a website comment. This significantly reduces the complexity of exploiting the issue and makes social engineering far easier.
The problem lies in how Elementor bypassed WordPress REST nonce checks
Patchstack found that the vulnerability originates in Elementor’s Editor Events module. That component needed to exempt its own REST API requests from normal WordPress nonce verification.
The implementation attempted to identify Elementor’s own event API by searching the raw request URI for the string:
elementor/v1/events/
The problem is that the raw request URI also contains the query string, and the query string is fully controlled by the attacker.
That means an attacker can send a request to an entirely different WordPress REST endpoint while simply adding elementor/v1/events/ somewhere inside an otherwise irrelevant query parameter.
Elementor then incorrectly treats the request as one belonging to its own trusted event endpoint.
This is the first major weakness.
Returning “true” disables more than Elementor intended
The second part of the problem is even more significant.
The vulnerable code hooks into WordPress’s rest_authentication_errors filter at an early priority and returns true when it believes the request belongs to Elementor’s event API.
In WordPress, returning true does not simply mean:
“Skip Elementor’s own check.”
It effectively tells downstream authentication handlers:
“Authentication has already succeeded.”
WordPress’s normal REST nonce verification therefore never runs.
The result is that the user’s authentication cookie remains valid, but the mechanism designed to prove that the user intentionally initiated the REST request is bypassed.
Authorization still exists.
Intent verification does not.
That difference is what turns the vulnerability into a powerful CSRF primitive.
One administrator click can create another administrator
Patchstack demonstrated the problem using WordPress’s standard user REST endpoint.
An attacker can construct a URL targeting:
/wp-json/wp/v2/users
and use WordPress’s _method=POST parameter to make an ordinary GET navigation behave like a write request.
The URL can contain attacker-chosen values for:
- username;
- email;
- password; and
- administrator role.
The attacker then adds an innocuous-looking query value containing:
elementor/v1/events/
to trigger Elementor’s faulty authentication bypass.
If a logged-in administrator opens the URL, WordPress processes the request using that administrator’s existing session and creates the attacker-controlled administrator account.
The victim does not have to enter credentials, approve the account, or submit a form.
One click can be enough.
The vulnerability reaches beyond account creation
Creating a rogue administrator is the clearest demonstration because the impact is easy to understand.
However, Patchstack emphasizes that the underlying vulnerability is broader.
The authentication bypass happens before WordPress determines which REST route will handle the request.
That means the issue is not limited to Elementor’s own APIs.
It can affect the entire REST API surface exposed by:
- WordPress core;
- Elementor;
- other plugins;
- custom plugins;
- themes exposing REST endpoints.
Any REST action that the logged-in victim is authorized to perform may potentially become reachable through the CSRF technique.
That dramatically expands the potential blast radius.
For an administrator, possible actions may include modifying configuration, changing users, interacting with plugin APIs, or performing other privileged operations exposed through REST.
This is why CSRF can still become a site-takeover vulnerability
CSRF vulnerabilities are sometimes treated as less serious because they require a victim to interact with attacker-controlled content.
This case demonstrates why that assumption can be dangerous.
The important questions are not simply:
“Does the attacker need a victim?”
but:
“What privileges does the victim already possess, and what can the attack force that session to do?”
If the victim is a WordPress administrator and the vulnerable application allows arbitrary privileged REST actions, CSRF becomes a path to administrative compromise.
The vulnerability therefore turns the administrator’s own authenticated browser into the attacker’s execution mechanism.
The attacker does not need a sophisticated phishing page
Another reason this issue deserves attention is the unusually simple delivery mechanism.
Many CSRF attacks require an attacker-controlled page containing JavaScript or an automatically submitted form.
This one does not.
Because WordPress supports HTTP method overriding through the _method query parameter, an attacker can encode the required write operation directly into an ordinary URL.
That means a plain anchor can carry the entire attack.
The victim may see nothing more unusual than a link.
This lowers the operational barrier significantly and means phishing defenses focused only on malicious attachments or complex websites may not catch the social-engineering component.
The affected feature may be enabled without administrators realizing it
The vulnerable Editor Events functionality is controlled through an Elementor experiment.
Patchstack found that the experiment is marked as hidden and therefore does not appear in Elementor’s normal Experiments interface.
For sites where Elementor was first installed at version 3.32.0 or later, the feature can also be active by default.
That means administrators may not even realize the vulnerable component is running.
A stock Elementor 4.3.0 or 4.3.1 installation can therefore be exposed without the site owner enabling a clearly visible experimental feature.
The timing of the fix is encouraging, but patching still needs urgency
The vulnerability was reported on September 22 and Elementor released version 4.3.2 on September 24, replacing the faulty raw-URI check with validation against the actual REST route resolved by WordPress. The patch also changes the comparison so the Elementor event namespace must appear at the beginning of the resolved route rather than merely somewhere inside it.
That is an appropriately fast response.
However, with a plugin as widely deployed as Elementor, even a short patch gap can leave a large number of sites exposed.
Administrators running 4.3.0 or 4.3.1 should therefore update immediately.
Older releases before 4.3.0 do not contain this particular vulnerable Editor Events proxy, but remaining on an older version should not be treated as a safe long-term workaround because older Elementor releases may contain other security issues.
Site owners should also look for unexpected administrator accounts
Because the demonstrated exploit creates a new administrator account, administrators should review their WordPress user lists after updating.
Useful checks include:
- recently created administrator accounts;
- unfamiliar usernames or email addresses;
- accounts created during suspicious administrator sessions;
- unexpected privilege changes;
- new application passwords;
- modified plugin settings;
- unfamiliar plugins or themes;
- suspicious REST API activity.
If a rogue administrator already exists, applying version 4.3.2 will stop new exploitation but will not remove the attacker’s existing access.
That is why remediation should include both patching and compromise assessment.
Logs may reveal the attack pattern
Security teams can also inspect web-server logs for unusual requests involving WordPress REST endpoints together with the string:
elementor/v1/events/
appearing in query parameters where it does not belong.
Requests to endpoints such as:
/wp-json/wp/v2/users
containing _method=POST and the Elementor event marker deserve particular scrutiny.
However, defenders should avoid building detection only around the exact proof-of-concept format because attackers can vary parameter names, order, and other parts of the request.
The durable signal is an unrelated REST endpoint carrying the Elementor event namespace inside attacker-controlled query data.
Administrator session security becomes especially important
This flaw also demonstrates why administrator browsing behavior matters.
A WordPress administrator who remains logged into the management interface while opening links from email, comments, chat messages, or external websites presents a larger CSRF exposure than an administrator whose privileged session is used only when necessary.
Organizations managing important WordPress environments can reduce risk by using separate browser profiles for administration, limiting session duration, restricting administrative access to trusted networks, and ensuring administrators do not use privileged browser sessions for ordinary Internet browsing.
These controls do not replace patching, but they reduce the impact of future CSRF vulnerabilities.
Security decisions should not rely on raw request strings
There is also a useful development lesson behind this flaw.
The vulnerable code wanted to answer a security-sensitive question:
“Is this request targeting our trusted REST endpoint?”
But it tried to answer that question using the raw request URI before WordPress had actually resolved the route.
That meant security logic was being based on attacker-controlled text rather than trusted routing state.
This pattern is dangerous far beyond WordPress.
Whenever access-control or authentication logic depends on substring checks against raw URLs, headers, paths, or other untrusted request data, attackers may be able to create values that satisfy the check without actually targeting the intended resource.
Security decisions should be based on parsed, validated, canonical application state wherever possible.
The wider WordPress ecosystem remains an attractive attack surface
Elementor’s enormous deployment base makes vulnerabilities in the plugin particularly important.
A security issue affecting a niche plugin may expose thousands of websites.
A flaw in a component deployed across millions of sites can immediately attract much greater attacker interest.
WordPress sites are also attractive because administrator access often provides a straightforward path to full control of the application.
Once an attacker becomes an administrator, they may be able to install plugins, modify themes, inject JavaScript, redirect visitors, create additional users, access customer information, or introduce PHP code depending on the configuration and available functionality.
A rogue administrator account is therefore not merely an account-management issue.
It can become a persistence mechanism and a stepping stone toward complete website compromise.
The broader cybersecurity lesson
The Elementor vulnerability is a strong example of how a small authentication-design mistake can have consequences far beyond the component where the mistake originated.
A substring match against a raw URL caused WordPress’s REST nonce protection to be bypassed.
That bypass applies before routing.
The victim’s existing session supplies the privileges.
And a plain hyperlink can trigger the action.
The resulting chain becomes:
attacker crafts link → logged-in administrator clicks → Elementor bypasses REST nonce validation → victim’s session authorizes the request → attacker-controlled administrator account is created
The attacker never needs to know the administrator’s password.
They simply borrow the administrator’s authenticated browser.
That is what makes this flaw particularly dangerous.
The lesson is not merely “keep Elementor updated.” It is that authentication controls must distinguish between a user being logged in and a user actually intending to perform an action.
Elementor 4.3.2 restores that distinction.
Sites running 4.3.0 or 4.3.1 should update immediately and verify that nobody exploited the gap before they did.
A cross-site request forgery (CSRF) vulnerability in the Elementor plugin for WordPress could allow an unauthenticated attacker to create administrator accounts. [...]
Source: Elementor WordPress flaw lets attackers create admin accounts via Bleeping Computer — published 25 Sep 2026.
Was this article helpful?
Your feedback helps us improve the knowledge base.