CVE-2025-68058
Executive Summary
CVE-2025-68058 is a critical Missing Authorization vulnerability in the e-plugins Institutions Directory WordPress plugin, affecting all versions up to and including 1.3.4. This flaw allows unauthenticated attackers to exploit incorrectly configured access control security levels, potentially leading to unauthorized data access and manipulation of directory entries. The vulnerability resides in the WordPress ecosystem, specifically within the plugin's REST API endpoints or AJAX handlers that fail to enforce proper capability checks. With a CVSS score of 7.6, the risk is elevated due to the lack of required privileges and the potential for data integrity compromise. As of this report, no official patch has been released, and the vendor has not responded to disclosure attempts.
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.
No signup required
Supply Chain & Package Security
This vulnerability is specific to the WordPress plugin ecosystem. The plugin is distributed via the official WordPress Plugin Directory and third-party marketplaces. Users are advised to verify the integrity of their plugin files against known hashes and monitor for unauthorized modifications. No known supply chain compromise has been reported, but the unpatched state increases the risk of malicious actors injecting backdoors through this vector.
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) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – Exploit does not affect other components.
- Confidentiality Impact (C): High (H) – Full read access to directory data.
- Integrity Impact (I): High (H) – Ability to modify or delete directory entries.
- Availability Impact (A): None (N) – No denial of service.
Threat Level: Critical (7.6) – Exploitation is trivial and can lead to complete compromise of the directory data.
Deep Dive & Mechanics
The vulnerability stems from missing authorization checks in the plugin's REST API endpoints or AJAX actions. The plugin likely registers custom routes (e.g., /wp-json/institutions-directory/v1/...) or uses wp_ajax_* and wp_ajax_nopriv_* hooks without verifying user capabilities. An unauthenticated attacker can send crafted HTTP requests to:
- List all institutions (data exfiltration).
- Create, update, or delete institutions (data manipulation).
- Access sensitive metadata or configuration options.
The core issue is the use of current_user_can() checks that are either absent or incorrectly implemented, allowing nopriv (non-logged-in) access to privileged actions.
Vulnerable vs. Patched Code
Vulnerable Code (hypothetical example from plugin):
add_action('wp_ajax_nopriv_institutions_directory_delete', 'delete_institution');
function delete_institution() {
$id = intval($_POST['id']);
global $wpdb;
$wpdb->delete("{$wpdb->prefix}institutions", ['id' => $id]);
wp_die('Deleted');
}
Missing current_user_can('manage_options') check.
Patched Code (hypothetical):
add_action('wp_ajax_institutions_directory_delete', 'delete_institution');
add_action('wp_ajax_nopriv_institutions_directory_delete', function() {
wp_die('Unauthorized', 403);
});
function delete_institution() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
$id = intval($_POST['id']);
global $wpdb;
$wpdb->delete("{$wpdb->prefix}institutions", ['id' => $id]);
wp_die('Deleted');
}
Adds capability check and removes nopriv handler for privileged actions.
Exploitation & Lab Setup
Red Team
- Reconnaissance: Identify target WordPress site using Shodan dork:
http.title:"Institutions Directory". - Enumerate Endpoints: Use
curlto probe for vulnerable REST endpoints:curl -s "http://target/wp-json/institutions-directory/v1/institutions" - Exploit Missing Auth: Send a POST request to delete an institution:
curl -X POST "http://target/wp-admin/admin-ajax.php" \ -d "action=institutions_directory_delete&id=1" - Data Exfiltration: Dump all institutions:
curl -s "http://target/wp-json/institutions-directory/v1/institutions?per_page=100" | jq .
Blue Team
- Detection: Monitor for unusual AJAX requests to
admin-ajax.phpwithactionparameters matching plugin patterns (e.g.,institutions_directory_*). - Honeypot: Deploy a fake endpoint that logs attacker IPs and payloads.
- Blocking: Use Web Application Firewall (WAF) rules to block requests to
/wp-json/institutions-directory/from unauthenticated users.
Indicators of Compromise (IOCs)
- Network:
- HTTP requests to
/wp-admin/admin-ajax.phpwithaction=institutions_directory_*parameters. - GET/POST requests to
/wp-json/institutions-directory/v1/*without authentication cookies.
- HTTP requests to
- File System:
- Unexpected modifications to
wp-content/plugins/institutions-directory/files. - New entries in
wp_postsor custom tables (e.g.,wp_institutions) with suspicious timestamps.
- Unexpected modifications to
- Logs:
- Repeated 200 responses to unauthenticated AJAX calls.
- Error logs showing
wp_diecalls with "Unauthorized" (if partial patching exists).
Detection Engineering
YARA Rule
rule CVE_2025_68058_Institutions_Directory_Missing_Auth {
meta:
description = "Detects exploitation attempts of CVE-2025-68058 in WordPress Institutions Directory plugin"
author = "Valters IT"
date = "2025-04-10"
hash = "d41d8cd98f00b204e9800998ecf8427e"
strings:
$ajax_action = "institutions_directory_" ascii wide nocase
$rest_route = "/institutions-directory/v1/" ascii wide nocase
$nopriv = "wp_ajax_nopriv_institutions_directory" ascii wide nocase
condition:
any of them
}
Sigma Rule
title: CVE-2025-68058 - Missing Authorization in Institutions Directory
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects unauthenticated access to Institutions Directory plugin endpoints
author: Valters IT
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-uri-query|contains:
- 'action=institutions_directory_'
- '/wp-json/institutions-directory/v1/'
condition: selection
falsepositives:
- Legitimate admin actions (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-68058 - Institutions Directory Missing Auth Exploit"; flow:to_server; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=institutions_directory_"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Disable the plugin until a patch is available.
- Virtual Patching: Add WAF rules to block unauthenticated requests to:
/wp-admin/admin-ajax.phpwithactioncontaininginstitutions_directory_/wp-json/institutions-directory/v1/*
- Code Fix: Implement proper capability checks using
current_user_can()orwp_verify_nonce()for all AJAX and REST endpoints. - Monitoring: Enable logging for all plugin-related requests and review for anomalies.
- Alternative: Migrate to a maintained directory plugin with active security support.
Report generated by Valters IT DevSecOps Intelligence Unit
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.