☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Hashthemes logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 4.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-2023-33923

CVE-2023-33923 Missing Authorization in Hashthemes
📅 PUBLISHED: 2024-03-25 04:46 UTC 🔄 UPDATED: 2026-08-12 14:51 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.07%
👁️
0.07% probability
1.8× above the median CVE
Tier: LOW
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 4.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
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-33923 is a Missing Authorization vulnerability affecting three WordPress themes developed by HashThemes: Viral News (versions up to 1.4.5), Viral (versions up to 1.8.0), and HashOne (versions up to 1.3.0). This vulnerability allows an unauthenticated attacker to bypass authorization checks, potentially leading to unauthorized access to certain functions or data within the WordPress ecosystem. The CVSS score is 4.3 (Medium), indicating a moderate risk due to low attack complexity and no required privileges, but with limited impact on integrity and no impact on confidentiality or availability.

⚡ 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 WordPress themes distributed via the official WordPress repository and potentially third-party marketplaces. Since these themes are part of the WordPress supply chain, any site running a vulnerable version is at risk. The lack of a known patch from the vendor (HashThemes) means that affected sites must rely on manual mitigation or alternative security controls.

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: 4.3 (Medium)
  • Attack Vector: Network (AV:N) – The vulnerability can be exploited remotely.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: None (UI:N) – No user action is required.
  • Scope: Unchanged (S:U) – The vulnerable component and the impacted component are the same.
  • Confidentiality Impact: None (C:N) – No data disclosure.
  • Integrity Impact: Low (I:L) – Limited modification of data or functionality.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. The vulnerability is easy to exploit but has limited impact. However, in a WordPress context, it could be chained with other vulnerabilities to escalate privileges or modify site content.

Deep Dive & Mechanics

The vulnerability stems from Missing Authorization (CWE-862) in the theme’s AJAX handlers or REST API endpoints. In WordPress themes, developers often implement AJAX actions for front-end functionality (e.g., loading posts, saving user preferences). If these actions do not properly check for user capabilities (e.g., current_user_can()), an unauthenticated attacker can trigger them.

For example, a theme might have an AJAX action like viral_news_save_settings that saves arbitrary options without verifying that the user is an administrator. An attacker could send a crafted request to wp-admin/admin-ajax.php with the action parameter and malicious data, potentially modifying theme settings or injecting malicious content.

The vulnerability affects three themes, suggesting a common code pattern across HashThemes’ products. The exact endpoint is not publicly documented, but the missing authorization check is the root cause.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a hypothetical example of the vulnerable code pattern and a potential fix.

Vulnerable Code (PHP):

add_action('wp_ajax_nopriv_viral_news_update_option', 'viral_news_update_option');
function viral_news_update_option() {
    $option_name = sanitize_text_field($_POST['option_name']);
    $option_value = sanitize_text_field($_POST['option_value']);
    update_option($option_name, $option_value);
    wp_die();
}

Patched Code (PHP):

add_action('wp_ajax_viral_news_update_option', 'viral_news_update_option');
add_action('wp_ajax_nopriv_viral_news_update_option', 'viral_news_update_option');
function viral_news_update_option() {
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized', 403);
    }
    $option_name = sanitize_text_field($_POST['option_name']);
    $option_value = sanitize_text_field($_POST['option_value']);
    update_option($option_name, $option_value);
    wp_die();
}

The fix adds a capability check (current_user_can('manage_options')) to ensure only administrators can execute the action. The nopriv hook is removed to prevent unauthenticated access.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site running a vulnerable theme (Viral News <= 1.4.5, Viral <= 1.8.0, or HashOne <= 1.3.0).
  • Knowledge of the vulnerable AJAX action (e.g., viral_news_save_settings).

Exploitation Steps:

  1. Identify the vulnerable AJAX action by analyzing the theme’s functions.php or JavaScript files.
  2. Send a crafted POST request to wp-admin/admin-ajax.php with the action parameter and payload.

Example Exploit (cURL):

curl -X POST http://target.com/wp-admin/admin-ajax.php \
  -d "action=viral_news_save_settings&option_name=users_can_register&option_value=1"

This would enable user registration on the site, allowing the attacker to create an account.

Expected Outcome: Unauthorized modification of WordPress options or theme settings.

Blue Team (Detection & Defense)

Detection:

  • Monitor wp-admin/admin-ajax.php requests for unusual action parameters (e.g., viral_news_*, viral_*, hashone_*).
  • Look for POST requests with action parameters that modify options or settings without authentication.

Defense:

  • Apply a Web Application Firewall (WAF) rule to block unauthenticated AJAX requests to sensitive actions.
  • Use a WordPress security plugin (e.g., Wordfence) to monitor and block suspicious activity.
  • Manually patch the theme by adding capability checks to all AJAX handlers (see patched code above).

Indicators of Compromise (IOCs)

  • Network IOCs:

    • POST requests to /wp-admin/admin-ajax.php with action parameters like viral_news_save_settings, viral_update_option, or hashone_theme_settings.
    • Unusual values in option_name or option_value POST parameters.
  • File IOCs:

    • Modified WordPress options in the wp_options table (e.g., users_can_register, admin_email).
    • Unexpected user accounts with elevated privileges.
  • Log IOCs:

    • Access logs showing repeated requests to admin-ajax.php from the same IP.
    • Error logs with "Unauthorized" messages if a patch is partially applied.

Detection Engineering

YARA Rule

rule Detect_CVE_2023_33923_Exploit {
    meta:
        description = "Detects exploitation attempts for CVE-2023-33923 in WordPress themes"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2023-33923"
    strings:
        $ajax_action = /action=(viral_news_|viral_|hashone_)[a-z_]+/ nocase
        $option_name = /option_name=[a-z_]+/ nocase
        $option_value = /option_value=[a-z0-9_]+/ nocase
    condition:
        all of them
}

Sigma Rule

title: CVE-2023-33923 WordPress Theme Missing Authorization Exploit
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects exploitation attempts of CVE-2023-33923 via AJAX requests
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'admin-ajax.php'
        cs-uri-query|re: 'action=(viral_news_|viral_|hashone_)'
    condition: selection
falsepositives:
    - Legitimate theme functionality (rare)
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2023-33923 WordPress Theme Missing Authorization Exploit"; flow:to_server,established; content:"POST"; http_method; content:"admin-ajax.php"; http_uri; pcre:"/action=(viral_news_|viral_|hashone_)/Ui"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the vulnerable theme and switch to a default WordPress theme (e.g., Twenty Twenty-Four) until a patch is available.
  2. Apply a virtual patch using a WAF to block unauthenticated AJAX requests to theme-specific actions.
  3. Monitor logs for exploitation attempts and block offending IPs.

Long-Term Fix:

  • Contact HashThemes for an official patch. If unavailable, manually patch the theme by adding capability checks to all AJAX handlers (see patched code above).
  • Consider replacing the theme with a more secure alternative.

Workaround:

  • Use a WordPress security plugin that adds nonce verification and capability checks to AJAX actions.

Valters IT
Securing Digital Frontiers

👁️ 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:"Viral News"
http.title:"Viral"
http.title:"HashOne"

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