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

CVE-2025-60116

CVE-2025-60116 Missing Authorization in Themegoods
📅 PUBLISHED: 2025-09-26 09: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.07%
👁️
0.07% probability
1.6× 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 5.4
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: L Integrity Low
A: N Availability None
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-60116 is a Missing Authorization vulnerability in the ThemeGoods Grand Conference WordPress theme, specifically within its custom post type (grandconference-custom-post). This flaw allows an unauthenticated attacker to exploit incorrectly configured access control security levels, potentially leading to unauthorized data access or modification. The vulnerability affects all versions of the theme’s custom post type component from n/a through version 2.6.4. As a WordPress ecosystem issue, this vulnerability is rooted in the theme’s failure to properly enforce capability checks on REST API endpoints or AJAX actions handling the custom post type. With a CVSS score of 5.4 (Medium), the risk is elevated due to the lack of required privileges and the potential for data exposure. No public proof-of-concept (PoC) or exploit code is currently available, and the vendor has not released a patch.

⚡ 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 WordPress ecosystem and the ThemeGoods Grand Conference theme. It is not related to NPM, PyPI, Go, or Ruby packages. The theme is distributed via ThemeForest and other marketplaces, making it a supply chain risk for site owners who have not updated to a patched version (if one becomes available). Organizations using this theme should monitor for vendor updates and consider temporary mitigations.

CVSS Breakdown & Threat Level

  • CVSS Score: 5.4 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
  • Attack Vector (AV): Network – The vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low – No special conditions are required.
  • Privileges Required (PR): None – No authentication is needed.
  • User Interaction (UI): None – The attacker does not need to trick a user.
  • Scope (S): Unchanged – The exploit cannot affect other components.
  • Confidentiality (C): Low – Limited data exposure is possible.
  • Integrity (I): Low – Limited data modification is possible.
  • Availability (A): None – No denial-of-service impact.

Threat Level: Medium. The lack of required privileges and low attack complexity make this a viable target for automated scanning and exploitation, especially in WordPress environments with the Grand Conference theme installed.

Deep Dive & Mechanics

The vulnerability resides in the Grand Conference Theme Custom Post Type (grandconference-custom-post). This custom post type likely registers REST API routes or AJAX handlers to manage conference-related content (e.g., speakers, sessions, sponsors). The flaw is a Missing Authorization (CWE-862) issue, meaning the theme fails to verify that the current user has the necessary capabilities (e.g., edit_posts, manage_options) before allowing access to these endpoints.

Technical Details:

  • The custom post type registration likely includes show_in_rest => true, exposing endpoints under /wp-json/wp/v2/grandconference-custom-post.
  • The theme may also define custom AJAX actions (e.g., wp_ajax_nopriv_*) that are not properly protected.
  • An unauthenticated attacker can send crafted HTTP requests to these endpoints to:
    • List, create, update, or delete custom post entries.
    • Access sensitive metadata or configuration data stored in post meta.
  • The vulnerability is exploitable without any authentication, as the access control checks are either missing or incorrectly implemented.

Attack Scenario:

  1. An attacker identifies a WordPress site using the Grand Conference theme.
  2. The attacker sends a GET request to /wp-json/wp/v2/grandconference-custom-post to list all custom posts.
  3. If the endpoint returns data without authentication, the attacker can extract sensitive information (e.g., speaker bios, session details, or internal notes).
  4. The attacker could also send POST requests to create or modify content, potentially defacing the site or injecting malicious data.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a hypothetical comparison based on common WordPress authorization patterns.

Vulnerable Code (Example):

// In functions.php or custom post type registration
add_action('rest_api_init', function () {
    register_rest_route('grandconference/v1', '/items', array(
        'methods' => 'GET',
        'callback' => 'get_items',
        // Missing 'permission_callback' parameter
    ));
});

function get_items($request) {
    // No capability check
    $items = get_posts(array('post_type' => 'grandconference-custom-post'));
    return $items;
}

Patched Code (Hypothetical):

add_action('rest_api_init', function () {
    register_rest_route('grandconference/v1', '/items', array(
        'methods' => 'GET',
        'callback' => 'get_items',
        'permission_callback' => function () {
            return current_user_can('edit_posts'); // Proper capability check
        }
    ));
});

function get_items($request) {
    $items = get_posts(array('post_type' => 'grandconference-custom-post'));
    return $items;
}

The patched version adds a permission_callback that checks if the user has the edit_posts capability, preventing unauthenticated access.

Exploitation & Lab Setup

Red Team (Offensive)

Lab Setup:

  1. Install WordPress (latest version) on a local server (e.g., using XAMPP or Docker).
  2. Install the Grand Conference theme (version <= 2.6.4) from a trusted source.
  3. Activate the theme and ensure the custom post type is registered.

Exploitation Steps:

  1. Enumerate Endpoints: Use a tool like curl or Burp Suite to discover REST API endpoints.
    curl -X GET http://target-site/wp-json/wp/v2/grandconference-custom-post
    
  2. Extract Data: If the endpoint returns data, parse the JSON response.
    curl -s http://target-site/wp-json/wp/v2/grandconference-custom-post | jq '.'
    
  3. Create/Modify Content: Attempt to create a new custom post via POST request.
    curl -X POST http://target-site/wp-json/wp/v2/grandconference-custom-post \
      -H "Content-Type: application/json" \
      -d '{"title": "Malicious Entry", "content": "Injected data", "status": "publish"}'
    
  4. Automate with Nuclei (if template available): Use a custom Nuclei template to scan for the vulnerability.

Blue Team (Defensive)

Detection Steps:

  1. Monitor REST API Logs: Look for unusual requests to /wp-json/wp/v2/grandconference-custom-post from unauthenticated sources.
  2. Check for Unauthorized Content: Review custom post entries for unexpected or malicious content.
  3. Implement Virtual Patching: Use a Web Application Firewall (WAF) to block requests to the vulnerable endpoints from unauthenticated users.
  4. Audit User Capabilities: Ensure that only trusted users have elevated roles.

Mitigation (Temporary):

  • Disable the custom post type’s REST API exposure by adding a filter in the theme’s functions.php:
    add_filter('rest_prepare_grandconference-custom-post', function($response, $post, $request) {
        if (!is_user_logged_in()) {
            return new WP_Error('rest_forbidden', 'Unauthorized', array('status' => 401));
        }
        return $response;
    }, 10, 3);
    
  • Alternatively, use a plugin like "Disable REST API" to restrict access to authenticated users only.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests to /wp-json/wp/v2/grandconference-custom-post without authentication headers.
    • POST requests to the same endpoint with JSON payloads containing "status": "publish".
  • File IOCs:
    • Unexpected entries in the wp_posts table with post_type = 'grandconference-custom-post'.
    • Modified theme files (e.g., functions.php) containing unauthorized code.
  • Log IOCs:
    • Web server logs showing 200 responses to unauthenticated REST API requests to the custom post type endpoint.
    • WordPress debug logs (if enabled) showing rest_forbidden errors after patching.

Detection Engineering

YARA Rule

rule Detect_GrandConference_Missing_Auth {
    meta:
        description = "Detects vulnerable Grand Conference theme files with missing authorization"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-60116"
    strings:
        $rest_route = /register_rest_route\s*\(\s*['\"]grandconference\/v1['\"]/
        $no_permission = /'permission_callback'\s*=>\s*(__return_true|false|null)/
        $ajax_action = /wp_ajax_nopriv_grandconference/
    condition:
        ($rest_route and $no_permission) or $ajax_action
}

Sigma Rule

title: Unauthenticated Access to Grand Conference Custom Post Type
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects unauthenticated HTTP requests to the Grand Conference custom post type REST API endpoint
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: 'GET'
        cs-uri-stem: '/wp-json/wp/v2/grandconference-custom-post'
        sc-status: 200
    condition: selection
falsepositives:
    - Legitimate authenticated API calls (if logged without auth headers)
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-60116 - Unauthenticated Grand Conference Custom Post Type Access"; flow:to_server; content:"GET"; http_method; content:"/wp-json/wp/v2/grandconference-custom-post"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable REST API for Custom Post Type: Add the following code to the theme’s functions.php to block unauthenticated access:
    add_filter('rest_prepare_grandconference-custom-post', function($response, $post, $request) {
        if (!is_user_logged_in()) {
            return new WP_Error('rest_forbidden', 'Unauthorized', array('status' => 401));
        }
        return $response;
    }, 10, 3);
    
  2. Update Theme: Check the ThemeGoods website or ThemeForest for any updated version of the Grand Conference theme. If available, update immediately.
  3. Web Application Firewall (WAF): Deploy a WAF rule to block requests to /wp-json/wp/v2/grandconference-custom-post from unauthenticated IPs.

Long-Term Recommendations:

  • Vendor Communication: Contact ThemeGoods support to request a security patch.
  • Code Audit: Perform a security audit of the theme’s custom post type registration and AJAX handlers to ensure proper capability checks.
  • Monitor for Exploits: Subscribe to CVE alerts and WordPress security feeds for updates on this vulnerability.
  • Consider Alternative Themes: If the vendor does not provide a patch, consider migrating to a more actively maintained theme.

Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

👁️ 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:"Grand Conference"
http.html:"grandconference-custom-post"

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