CVE-2024-10779
Executive Summary
CVE-2024-10779 is an information exposure vulnerability in the Cowidgets – Elementor Addons WordPress plugin, affecting all versions up to and including 1.2.0. The flaw resides in the ce_template shortcode, which fails to properly restrict which posts can be included. This allows authenticated attackers with Contributor-level access or higher to extract data from private or draft posts created by Elementor that they should not have access to. The vulnerability has a CVSS score of 5.3 (Medium) and an EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public proof-of-concept or patch is currently available.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
WordPress Ecosystem Context
This vulnerability is specific to the WordPress plugin ecosystem. The ce_template shortcode is a custom shortcode provided by the Cowidgets plugin, and the issue arises from insufficient authorization checks when processing shortcode attributes. This is not a server-level vulnerability but a plugin-level access control bypass.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
- Base Score: 5.3 (Medium)
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Contributor-level access)
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: Low (exposure of private/draft post content)
- Integrity Impact: None
- Availability Impact: None
Threat Level: Medium. While the CVSS score is moderate, the ability for authenticated users to leak private content from Elementor posts could lead to sensitive data disclosure, especially in multi-author environments.
Deep Dive & Mechanics
The vulnerability exists in the ce_template shortcode handler within the Cowidgets plugin. The shortcode is designed to embed Elementor templates (posts of type elementor_library) into pages. However, the code does not properly validate whether the current user has permission to view the specified post.
Root Cause: The shortcode likely uses get_post() or WP_Query without checking the post status or user capabilities. An attacker can supply a post ID or slug in the shortcode attribute (e.g., [ce_template id="123"]) to retrieve a private or draft post. The plugin then renders the Elementor content of that post, exposing it to the attacker.
Attack Flow:
- Authenticate as a Contributor-level user.
- Identify a private or draft Elementor post ID (e.g., via ID enumeration or by knowing the slug).
- Insert the
ce_templateshortcode with the target post ID into a page or post the attacker can edit. - View the page to see the private content rendered.
Affected Component: ce_template shortcode in Cowidgets plugin (all versions <= 1.2.0).
Vulnerable vs. Patched Code
Since no patch is available, we can only describe the vulnerable pattern.
Vulnerable Code (Hypothetical):
function cowidgets_ce_template_shortcode($atts) {
$atts = shortcode_atts(array('id' => 0), $atts);
$post = get_post($atts['id']);
if ($post && $post->post_type == 'elementor_library') {
// No capability check
echo Elementor\Plugin::instance()->frontend->get_builder_content($post->ID);
}
}
Patched Code (Expected):
function cowidgets_ce_template_shortcode($atts) {
$atts = shortcode_atts(array('id' => 0), $atts);
$post = get_post($atts['id']);
if ($post && $post->post_type == 'elementor_library') {
// Check if user can read the post
if (current_user_can('read_post', $post->ID)) {
echo Elementor\Plugin::instance()->frontend->get_builder_content($post->ID);
}
}
}
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress installation with Cowidgets plugin <= 1.2.0
- Contributor-level account or higher
- Knowledge of a private/draft Elementor post ID
Exploitation Steps:
- Log in as a Contributor.
- Create a new post or page.
- Insert the shortcode:
[ce_template id="TARGET_POST_ID"] - Publish or preview the post.
- The private/draft Elementor content will be rendered.
Example:
// No exploit code available; manual shortcode injection is sufficient.
Blue Team (Detection & Hardening)
Detection:
- Monitor for shortcode usage in post content by low-privilege users.
- Look for
ce_templateshortcode with unusualidvalues (e.g., IDs that don't match published Elementor templates).
Hardening:
- Disable the
ce_templateshortcode via functions.php:
remove_shortcode('ce_template');
- Restrict Contributor-level users from using shortcodes via user role editor.
- Apply principle of least privilege: only allow Editors and Administrators to use Elementor shortcodes.
Indicators of Compromise (IOCs)
- File:
/wp-content/plugins/cowidgets/(presence of vulnerable plugin) - Shortcode:
[ce_template id="*"]in post content - Log Entry: WordPress audit logs showing shortcode usage by Contributor users
- Network: HTTP requests to pages containing the shortcode (no specific pattern)
Detection Engineering
YARA Rule
rule cowidgets_ce_template_info_exposure {
meta:
description = "Detects vulnerable Cowidgets plugin with ce_template shortcode"
author = "Valters IT"
date = "2024-01-01"
reference = "CVE-2024-10779"
strings:
$shortcode = "ce_template"
$func = "get_post"
$elementor = "elementor_library"
condition:
all of them
}
Sigma Rule
title: Cowidgets ce_template Shortcode Information Exposure
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects usage of ce_template shortcode by low-privilege users
author: Valters IT
logsource:
category: application
product: wordpress
detection:
selection:
EventID: 1000 # Custom WordPress audit event
UserRole: "contributor"
PostContent|contains: "[ce_template"
condition: selection
falsepositives:
- Legitimate use by Editors/Admins
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-10779 Cowidgets ce_template Shortcode Exploit"; flow:to_server,established; content:"[ce_template"; http_client_body; nocase; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Cowidgets plugin until a patch is released.
- Remove the
ce_templateshortcode via functions.php (see Blue Team section). - Audit all posts/pages for unauthorized shortcode usage.
Long-term Fix:
- Apply vendor patch when available.
- Upgrade to a patched version (currently unknown).
- Implement custom capability checks for shortcode handlers.
Workarounds:
- Use a security plugin to restrict shortcode usage by user role.
- Change Contributor role capabilities to disallow
unfiltered_html(though this may break other functionality).
Valters IT
DevSecOps & Cyber Threat Intelligence
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.