Skip to main content
CVE Vulnerability Database

CVE-2026-2917: Happy Addons Elementor Auth Bypass Flaw

CVE-2026-2917 is an authentication bypass vulnerability in Happy Addons for Elementor allowing Contributors to clone any post via IDOR. This article covers the technical details, affected versions, impact, and mitigation.

Published:

CVE-2026-2917 Overview

The Happy Addons for Elementor plugin for WordPress contains an Insecure Direct Object Reference (IDOR) vulnerability in all versions up to and including 3.21.0. The vulnerability exists in the ha_duplicate_thing admin action handler, which allows authenticated attackers with Contributor-level access or higher to clone any published post, page, or custom post type belonging to other users.

The flaw stems from improper authorization checks in the plugin's can_clone() method, which only validates the general edit_posts capability rather than performing object-level authorization. Combined with a nonce that is tied to the generic action name rather than specific post IDs, attackers can obtain a valid clone nonce from their own posts and manipulate the post_id parameter to target content owned by other users.

Critical Impact

Authenticated attackers with Contributor-level access can clone any post content including sensitive metadata, widget configurations, and potentially API tokens stored in post metadata.

Affected Products

  • Happy Addons for Elementor plugin versions up to and including 3.21.0
  • WordPress installations using the vulnerable plugin versions

Discovery Timeline

  • 2026-03-11 - CVE CVE-2026-2917 published to NVD
  • 2026-03-11 - Last updated in NVD database

Technical Details for CVE-2026-2917

Vulnerability Analysis

This vulnerability is classified as CWE-639 (Authorization Bypass Through User-Controlled Key), commonly known as an Insecure Direct Object Reference (IDOR). The root cause lies in the plugin's clone functionality failing to verify whether the requesting user has permission to access the specific post being cloned.

When a user initiates a clone operation, the plugin checks if the user has the general edit_posts capability. However, this capability only confirms the user can edit some posts—not that they have access to the specific post targeted in the request. WordPress provides the current_user_can('edit_post', $post_id) function specifically for object-level authorization, but the vulnerable code omits this critical check.

The clone operation is particularly dangerous because it copies comprehensive post data including the full post content, all post metadata (which may contain sensitive widget configurations, API tokens, or other confidential information), and taxonomy assignments. This data is transferred into a new draft owned by the attacker, effectively giving them complete access to potentially sensitive information.

Root Cause

The vulnerability originates from two security weaknesses in the clone handler implementation:

  1. Missing Object-Level Authorization: The can_clone() method validates current_user_can('edit_posts') which is a general capability check, but fails to call current_user_can('edit_post', $post_id) for the specific post being cloned. This allows users to access resources they should not be authorized to view.

  2. Generic Nonce Binding: The security nonce is tied to the generic action name ha_duplicate_thing rather than incorporating the specific $post_id. This means a valid nonce obtained from cloning the user's own post can be reused to clone any other post on the site.

Attack Vector

An authenticated attacker with at least Contributor-level access can exploit this vulnerability through the following approach:

The attacker first creates or accesses one of their own posts and initiates a legitimate clone operation to capture the nonce value. With this valid nonce in hand, they craft a request to the ha_duplicate_thing action handler, modifying the post_id parameter to reference a target post owned by another user—such as an administrator's unpublished draft or a post containing sensitive configuration data.

Because the plugin only checks the generic edit_posts capability and the nonce is not bound to a specific post ID, the request succeeds. The full content and metadata of the targeted post is cloned into a new draft under the attacker's ownership, where they can view all information including potentially sensitive API tokens, widget configurations, and other metadata stored with the post.

Technical implementation details can be found in the WordPress Clone Handler Code and the associated Wordfence Vulnerability Report.

Detection Methods for CVE-2026-2917

Indicators of Compromise

  • Unexpected draft posts appearing in user accounts that are copies of other users' content
  • Admin action logs showing ha_duplicate_thing requests with post_id values targeting posts the requester does not own
  • Multiple clone operations in rapid succession from a single user account
  • Contributor or Author-level users possessing copies of Administrator or Editor content

Detection Strategies

  • Monitor WordPress admin-ajax.php requests for ha_duplicate_thing action and compare the post_id parameter against the requesting user's actual post ownership
  • Implement logging for post cloning operations that captures both the source post ID and the requesting user ID
  • Review newly created draft posts for metadata that matches content from posts owned by other users
  • Audit user activity logs for patterns indicating unauthorized content access

Monitoring Recommendations

  • Enable detailed logging for WordPress AJAX admin actions, particularly those involving post manipulation
  • Configure alerts for Contributor-level users creating drafts with metadata typically associated with higher-privilege content
  • Periodically audit post ownership changes and unexplained draft creations
  • Monitor for rapid or automated clone operation attempts that may indicate exploitation

How to Mitigate CVE-2026-2917

Immediate Actions Required

  • Update Happy Addons for Elementor to the latest patched version immediately
  • Review existing Contributor-level user accounts for suspicious activity or unauthorized content access
  • Audit recently created draft posts for potential evidence of exploitation
  • Consider temporarily restricting Contributor access if immediate patching is not possible

Patch Information

The vulnerability has been addressed in versions newer than 3.21.0. The fix implements proper object-level authorization by using current_user_can('edit_post', $post_id) to verify the user has permission to access the specific post being cloned. Details of the patch can be reviewed in the WordPress Changeset Update.

Workarounds

  • Temporarily disable the Happy Addons for Elementor plugin until the patched version can be applied
  • Revoke Contributor-level access from untrusted users until the plugin is updated
  • Implement a Web Application Firewall (WAF) rule to block or monitor ha_duplicate_thing AJAX requests with suspicious patterns
  • Use a security plugin to restrict admin-ajax.php access patterns pending the official fix
bash
# Example: Temporarily disable the vulnerable plugin via WP-CLI
wp plugin deactivate happy-elementor-addons

# Verify plugin status
wp plugin status happy-elementor-addons

# Update to latest version when available
wp plugin update happy-elementor-addons

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.