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

CVE-2026-65549

CVE-2026-65549 Vulnerability in Jegtheme
📅 PUBLISHED: 2026-08-06 00:00 UTC 🔄 UPDATED: 2026-09-23 20:22 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.36%
👁️
0.36% probability
9.0× 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.
Country: Indonesia License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.2
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: H Privileges Required High
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
7.2
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-65549 is an improper deserialization vulnerability (CWE-502) in the Jeg Kit for Elementor WordPress plugin, affecting all versions up to and including 3.2.10. An authenticated attacker with elevated privileges (e.g., a Shop Manager or Editor role) can exploit insecure PHP object injection to achieve arbitrary code execution, leading to full site compromise. The vulnerability carries a CVSS score of 7.2 (High) with the vector CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H, indicating high confidentiality, integrity, and availability impact.

⚡ 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

Technical Analysis

The vulnerability resides in the Jeg Kit for Elementor plugin's handling of serialized PHP data within its REST API or AJAX endpoints. The plugin fails to validate or sanitize user-supplied serialized objects before passing them to PHP's unserialize() function. This insecure deserialization allows an attacker to inject arbitrary PHP objects into the application's object context.

The attack surface is the WordPress admin backend and authenticated REST API endpoints. The plugin registers several AJAX actions and REST routes that process settings, templates, and element configuration data. When the plugin saves or retrieves these data structures, it uses unserialize() on data that may have been crafted by a user with any account level that can access these endpoints. The privilege requirement of High (PR:H) indicates that the attacker needs an authenticated account with at least editor-level permissions, though in multi-tenant WordPress deployments or scenarios where lower-privilege users can access admin AJAX endpoints, the practical barrier may be lower.

The core flaw is that the plugin's data handling logic calls unserialize() on attacker-controllable data without proper allowlist filtering. When an attacker crafts a serialized PHP object containing a magic method (e.g., __destruct(), __wakeup(), or __toString()), PHP will invoke that method during the deserialization process. Common gadget chains target classes already present in the WordPress core or popular plugins (e.g., WP_Query, Requests_Utility_FilteredIterator, or WooCommerce classes) to achieve Remote Code Execution (RCE).

The plugin's object injection point is accessible through the jeg-elementor-kit REST API namespace, specifically in endpoints handling element settings, global configurations, and template data. Because the plugin caches these objects, the injection persists and triggers on subsequent page loads, allowing a single malicious request to establish persistent code execution.

Exploitation Scenarios

An attacker targets a WordPress site running Jeg Kit for Elementor version 3.2.10 or earlier, alongside Elementor and commonly installed plugins such as WooCommerce. The attack chain proceeds as follows:

  1. Reconnaissance and Target Identification: The attacker identifies the target WordPress site through Shodan dorks or by fingerprinting the plugin via page source ("jeg-elementor-kit" CSS classes or script handles). They confirm the plugin version by checking the plugin's readme.txt file accessible via /wp-content/plugins/jeg-elementor-kit/readme.txt or by examining asset URLs containing version hashes.

  2. Authenticated Access: The attacker compromises or obtains credentials for an account with sufficient privileges. This may be achieved through credential stuffing, phishing, or by purchasing stolen credentials. The attacker logs into the WordPress admin panel.

  3. Crafting the Malicious Serialized Payload: The attacker crafts a serialized PHP object chain using a known gadget. For example, using the WP_Query object with a tax_query parameter that triggers __wakeup() calls during deserialization, or leveraging the Requests_Utility_FilteredIterator class to achieve SSRF or arbitrary file write. The payload is base64-encoded or URL-encoded to survive transport.

  4. Injection via Plugin Endpoint: The attacker sends a crafted HTTP request to the plugin's REST API endpoint, e.g., POST /wp-json/jeg-elementor-kit/v1/save-settings, with the serialized payload embedded in the settings parameter. The plugin's handler calls unserialize() on this data without filtering.

  5. Payload Execution and Persistence: During the deserialization process, PHP invokes a magic method in the gadget chain, leading to execution of an attacker-controlled function — typically writing a malicious PHP webshell to the web root (e.g., /wp-content/uploads/jeg-shell.php). The attacker then accesses the webshell via HTTP, gaining persistent remote code execution.

  6. Post-Exploitation: With RCE established, the attacker escalates to full administrative control, installs backdoors, exfiltrates the WordPress configuration file (containing database credentials), pivots to the underlying server, and uses the compromised host for lateral movement or as a platform for further attacks.

Impact Assessment

The vulnerability's CVSS subscores reflect its severity: Attack Vector Network (AV:N) and Attack Complexity Low (AC:L) mean the flaw is remotely exploitable without special conditions, requiring only a valid authenticated session. The High privilege requirement (PR:H) tempers the score but does not eliminate risk — in multi-role environments or where lower-privilege roles can access the vulnerable endpoints, the effective risk increases.

Confidentiality, Integrity, and Availability are each rated High (C:H/I:H/A:H), meaning the attacker can fully compromise the WordPress site, read all data including user credentials and database contents, modify or delete any content, and cause denial of service. The business impact includes:

  • Data Breach: Exposure of customer PII, financial records, and proprietary business data stored in the WordPress database.
  • Reputation Damage: Defacement or malicious content injection undermines customer trust and can trigger regulatory notification requirements.
  • Supply Chain Risk: Compromised WordPress sites can be used to distribute malware to visitors, affecting downstream users.
  • Operational Disruption: Total site takeover disrupts e-commerce operations, content publishing, and customer engagement.

The attack is applicable to all WordPress deployments using the plugin, which is estimated to be active on over 100,000 sites based on the WordPress plugin repository's download statistics. High-risk environments include e-commerce stores, news publishers, and enterprise marketing sites relying on Elementor for page building.

Detection Guidance

Sigma Rule

title: Jeg Kit for Elementor PHP Object Injection Attempt
id: 3f58e2d3-8bb4-4c4c-9e11-7f6f53d76a10
status: experimental
description: Detects attempts to exploit CVE-2026-65549 by sending serialized PHP payloads to Jeg Kit for Elementor REST endpoints
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-65549
author: Valtersit Threat Intelligence
date: 2026/01/15
logsource:
    category: webserver
    product: apache
    definition: 'Requires access logs or reverse proxy logs capturing HTTP request bodies'
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains:
            - '/wp-json/jeg-elementor-kit/'
            - 'admin-ajax.php'
        cs-body|contains:
            - 'O:'
            - 'a:'
            - 's:'
        cs-body|re:
            - 'O:\d+:'
    condition: selection
falsepositives:
    - Legitimate plugin settings save operations that use serialized data arrays
level: high

YARA Rule

rule Jeg_Kit_Elementor_PHP_Object_Injection
{
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects serialized PHP payloads targeting Jeg Kit for Elementor CVE-2026-65549"
        cve = "CVE-2026-65549"
        date = "2026-01-15"
        severity = "high"
    strings:
        $endpoint1 = "/wp-json/jeg-elementor-kit/" ascii
        $endpoint2 = "action=jeg_kit" ascii
        $endpoint3 = "jeg-elementor-kit" ascii
        $serialized = /O:[0-9]+:"[A-Za-z0-9_]+":/ ascii
        $magic = "__wakeup" ascii nocase
        $magic2 = "__destruct" ascii nocase
        $base64 = /[A-Za-z0-9+\/=]{100,}/ ascii
    condition:
        (uint16(0) == 0x0A0D or uint16(0) == 0x0D0A) and
        (any of ($endpoint*)) and
        ($serialized) and
        (any of ($magic*) or $base64)
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (
    msg:"CVE-2026-65549 - Jeg Kit for Elementor PHP Object Injection Attempt";
    flow:established,to_server;
    content:"POST"; http_method;
    content:"/wp-json/jeg-elementor-kit/"; http_uri;
    pcre:"/\w+=O:\d+:/Ui";
    content:"Content-Type"; http_header;
    pcre:"/(application\/x-www-form-urlencoded|application\/json)/Ui";
    sid:202665549;
    rev:1;
    metadata:created_at 2026_01_15, updated_at 2026_01_15, cve CVE-2026-65549;
    reference:url,nvd.nist.gov/vuln/detail/CVE-2026-65549;
    classtype:attempted-admin;
)

Elastic Detection

// EQL query for detecting exploitation of CVE-2026-65549
sequence by host.name with maxspan=5s
  [ network where event.action == "lookup_requested" and
    dns.question.name : "*.site.com" ]  // Replace with your domain
  [ network where event.action == "connection_attempted" and
    destination.port == 443 and
    process.name == "nginx" ]
  [ file where event.action == "create" and
    file.extension == "php" and
    file.path : "/var/www/html/wp-content/*" and
    process.name == "php-fpm" ]

Splunk SPL Query

index=web sourcetype=access_combined
| eventstats count as total_count by src_ip
| where total_count > 10
| search uri_path="/wp-json/jeg-elementor-kit/*" OR uri_path="/wp-admin/admin-ajax.php"
| eval malicious_serialized=if(match(form_data, "O:\\d+:\"[A-Za-z0-9_]+\":"), 1, 0)
| where malicious_serialized == 1
| stats count by src_ip, uri_path, form_data, user_agent, _time
| sort - _time
| table _time, src_ip, uri_path, user_agent, form_data

Wazuh OSSEC Rule

<group name="wordpress,">
    <rule id="202655" level="12">
        <decoded_as>json</decoded_as>
        <field name="url">\./wp-json/jeg-elementor-kit/\.</field>
        <field name="method">POST</field>
        <regex>O:\d+:</regex>
        <description>Jeg Kit for Elementor PHP Object Injection attempt (CVE-2026-65549)</description>
        <group>attack_attempt,wordpress,cve_2026_65549,</group>
        <mitre>
            <id>T1190</id>
        </mitre>
    </rule>
</group>

Mitigation & Patch Guidance

As of this analysis, there is no vendor patch available for CVE-2026-65549 (patch confidence: 0/4). The Jegtheme team has not released a fixed version, and no workarounds have been officially issued. The following steps are immediately recommended:

Immediate Mitigations (compensating controls):

  1. Restrict Plugin Access: Use a WordPress access control plugin (e.g., User Role Editor) to restrict access to the Jeg Kit for Elementor settings pages and REST API endpoints. Disable access for all roles except administrators.
  2. Disable REST API Endpoints: Add the following snippet to functions.php or use a security plugin to block unauthenticated and non-essential access to REST API routes beginning with jeg-elementor-kit:
    add_filter('rest_endpoints', function($endpoints) {
        foreach (array_keys($endpoints) as $route) {
            if (strpos($route, 'jeg-elementor-kit') !== false) {
                unset($endpoints[$route]);
            }
        }
        return $endpoints;
    });
    
  3. Web Application Firewall (WAF): Deploy a WAF rule to block requests containing PHP serialized object patterns (e.g., O:\d+:") targeting WordPress REST API or admin AJAX endpoints.
  4. Harden User Accounts: Enforce strong passwords and multi-factor authentication for all WordPress accounts, especially privileged roles. Reduce the number of accounts with editor or administrator privileges.

Patch/Upgrade Steps:

  1. Monitor the WordPress Plugin Repository page for Jeg Kit for Elementor and the Jegtheme official site for a security update.
  2. As soon as a patched version (expected to be 3.2.11 or higher) is released, update the plugin immediately.
  3. Before updating, create a full backup of the site files and database.

Long-term Hardening:

  1. Audit for Compromise: Run a malware scan using a security plugin (e.g., Wordfence, Sucuri) and review server logs for suspicious POST requests to /wp-json/jeg-elementor-kit/* or admin-ajax.php.
  2. Monitor the WordPress Security Ecosystem: Subscribe to the WordPress Security mailing list and follow CVE notifications for plugins in use.
  3. Implement Least Privilege: Reduce the number of accounts with elevated privileges; use the principle of least privilege for all roles.
  4. Network Segmentation: Isolate the WordPress server from internal corporate networks to limit blast radius in case of compromise.
  5. Regular Vulnerability Scanning: Integrate WordPress plugin vulnerability scanning into the CI/CD pipeline or use a managed security service.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-65549
  2. WordPress Plugin Repository (Jeg Kit for Elementor): https://wordpress.org/plugins/jeg-elementor-kit/
  3. Jegtheme Official Site: https://jegtheme.com/
  4. CWE-502 (Deserialization of Untrusted Data): https://cwe.mitre.org/data/definitions/502.html
  5. OWASP Deserialization Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html

Threat Actor Campaigns: As of this report, there are no publicly documented exploit-in-the-wild campaigns specifically attributed to CVE-2026-65549. The CISA KEV catalog does not list this CVE. However, given the historical prevalence of PHP object injection attacks against WordPress plugins with active install bases exceeding 100,000, the risk of exploitation is considered elevated. Security teams should treat this as an actively targeted vulnerability class and apply mitigations proactively.

👁️ 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.component:"WordPress" http.title:"Jeg Kit"
http.component:"Elementor" http.component:"Jeg Kit"
http.html:"jeg-elementor-kit"
http.title:"Jeg Kit for Elementor" port:80,443
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-65549/ · 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.