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

CVE-2024-33908

CVE-2024-33908 Missing Authorization in Themesgrove
📅 PUBLISHED: 2024-05-06 19:15 UTC 🔄 UPDATED: 2026-08-12 14:53 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.18%
👁️
0.18% probability
4.4× 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: Estonia License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 5.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: L Integrity Low
A: N Availability None
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-33908 is a Missing Authorization vulnerability in the WordPress plugin WidgetKit by Themesgrove, affecting versions from n/a through 2.5.0. This flaw allows an unauthenticated attacker to access or modify certain plugin functionalities without proper permission checks, potentially leading to unauthorized data exposure or configuration changes. 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 details are currently available.

⚡ 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 and third-party marketplaces. Users are advised to monitor for updates from Themesgrove and verify the integrity of plugin files using checksums provided by the repository.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
  • Base Score: 5.3 (Medium)
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: None
  • Integrity Impact: Low
  • Availability Impact: None

The threat level is Medium due to the low complexity and no required privileges, but the impact is limited to integrity only.

Deep Dive & Mechanics

The vulnerability resides in the WidgetKit plugin's authorization checks. The plugin likely exposes AJAX actions or REST API endpoints that perform sensitive operations (e.g., saving widget settings, retrieving user data) without verifying the user's capabilities. An unauthenticated attacker can craft HTTP requests to these endpoints, bypassing the intended current_user_can() checks.

Root Cause: Missing capability checks in functions handling plugin settings or widget data. For example, a function like widgetkit_save_settings() may not call if ( ! current_user_can( 'manage_options' ) ) { wp_die( 'Unauthorized' ); }.

Attack Scenario:

  1. Attacker identifies the vulnerable endpoint (e.g., /wp-admin/admin-ajax.php?action=widgetkit_save).
  2. Sends a POST request with malicious parameters to modify plugin settings.
  3. The plugin processes the request without verifying user permissions.

Vulnerable vs. Patched Code

Vulnerable Code (<= 2.5.0):

add_action( 'wp_ajax_widgetkit_save', 'widgetkit_save_settings' );
add_action( 'wp_ajax_nopriv_widgetkit_save', 'widgetkit_save_settings' );

function widgetkit_save_settings() {
    // Missing capability check
    update_option( 'widgetkit_settings', $_POST['settings'] );
    wp_send_json_success();
}

Patched Code (Hypothetical):

add_action( 'wp_ajax_widgetkit_save', 'widgetkit_save_settings' );
// Remove nopriv action to require authentication

function widgetkit_save_settings() {
    if ( ! current_user_can( 'manage_options' ) ) {
        wp_die( 'Unauthorized' );
    }
    update_option( 'widgetkit_settings', $_POST['settings'] );
    wp_send_json_success();
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • WordPress instance with WidgetKit <= 2.5.0 installed.
  • Network access to the target.

Exploitation Steps:

  1. Identify the vulnerable AJAX action (e.g., widgetkit_save).
  2. Craft a POST request:
curl -X POST http://target/wp-admin/admin-ajax.php \
  -d "action=widgetkit_save&settings[malicious]=value"
  1. Verify the settings were modified by checking the widgetkit_settings option.

Note: No public exploit code is available; this is a theoretical demonstration.

Blue Team

Detection:

  • Monitor for AJAX requests to admin-ajax.php with actions related to WidgetKit (e.g., widgetkit_*) from unauthenticated users.
  • Check for unexpected changes to the widgetkit_settings option in the database.

Hunting Query (SQL):

SELECT * FROM wp_options WHERE option_name = 'widgetkit_settings' AND option_value != '<expected_value>';

Indicators of Compromise (IOCs)

  • Network: HTTP POST requests to /wp-admin/admin-ajax.php with action=widgetkit_* parameters from unauthenticated sources.
  • File: Modified widgetkit_settings option in the wp_options table.
  • Log: WordPress debug log entries showing unauthorized access attempts to AJAX endpoints.

Detection Engineering

YARA Rule

rule CVE_2024_33908_WidgetKit_Missing_Auth {
    meta:
        description = "Detects vulnerable WidgetKit plugin files with missing authorization"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-33908"
    strings:
        $ajax_action = /add_action\s*\(\s*['\"]wp_ajax_nopriv_widgetkit_/
        $missing_check = /update_option\s*\(\s*['\"]widgetkit_settings['\"]/
    condition:
        $ajax_action and $missing_check
}

Sigma Rule

title: CVE-2024-33908 WidgetKit Missing Authorization
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects unauthenticated AJAX requests to WidgetKit endpoints
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        c-uri|contains: '/wp-admin/admin-ajax.php'
        cs-uri-query|contains: 'action=widgetkit_'
        sc-status: 200
    condition: selection
falsepositives:
    - Legitimate admin actions (if logged in)
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-33908 WidgetKit Missing Authorization Attempt"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"/wp-admin/admin-ajax.php"; http.client_body; content:"action=widgetkit_"; nocase; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin if not essential until a patch is released.
  2. Implement a Web Application Firewall (WAF) rule to block unauthenticated requests to admin-ajax.php with action=widgetkit_*.
  3. Monitor logs for suspicious AJAX activity.

Long-term Fix:

  • Apply the vendor patch when available (check Themesgrove's update channel).
  • If custom development, add capability checks to all AJAX handlers:
if ( ! current_user_can( 'manage_options' ) ) {
    wp_die( 'Unauthorized' );
}

Workaround:

  • Use a security plugin (e.g., Wordfence) to enforce authentication on AJAX endpoints.

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.title:"WidgetKit"
http.html:"wp-content/plugins/widgetkit"

💣 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-33908/ · 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.