CVE-2024-11083
Executive Summary
CVE-2024-11083 is a Sensitive Information Exposure vulnerability in the ProfilePress (formerly WP User Avatar) WordPress plugin, affecting all versions up to and including 4.15.18. The flaw resides in how the plugin interacts with the WordPress core search feature, allowing unauthenticated attackers to extract sensitive data from posts that have been restricted to higher-level roles such as administrator. This is a WordPress ecosystem issue, not related to the underlying web server (Apache/Nginx). The vulnerability has a CVSS score of 5.3 (Medium) and an EPSS score of 0.0%, indicating low exploitation likelihood at the time of analysis. No public proof-of-concept (PoC) or exploit code is available, and the patch status remains unknown.
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 affects a WordPress plugin distributed via the official WordPress plugin repository. Users should monitor the plugin’s update channel for a patched version. No direct supply chain compromise is indicated, but the lack of a patch increases risk for sites using this plugin.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Base Score: 5.3 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
Threat Level: Medium. The vulnerability allows unauthenticated data extraction but only of post content that is restricted to higher roles. It does not allow code execution or data modification.
Deep Dive & Mechanics
The ProfilePress plugin provides user profile and membership functionality, including the ability to restrict access to certain posts or pages based on user roles. The vulnerability arises because the plugin fails to properly filter search results when the WordPress core search feature is used. When an unauthenticated user performs a search, the plugin’s access control checks are bypassed, and restricted post content (e.g., titles, excerpts, or full content) is exposed in search results.
Root Cause: The plugin does not hook into the posts_search or pre_get_posts filters to exclude restricted posts from search queries for unauthorized users. This allows the default WordPress search to return results that should be hidden.
Attack Vector: An attacker can send a crafted search query to the WordPress site (e.g., /?s=confidential) and receive search results containing snippets or full content from posts that are restricted to administrators.
Vulnerable vs. Patched Code
Since no patch is available, a hypothetical fix would involve adding a filter to the search query to exclude restricted posts for unauthenticated users.
Vulnerable Code (Conceptual):
// In ProfilePress plugin, no search filter is applied
add_action('init', function() {
// No hook to restrict search results
});
Patched Code (Hypothetical):
// Add filter to restrict search results
add_filter('posts_search', function($search, $query) {
if (!is_user_logged_in() && $query->is_search()) {
// Exclude posts with specific meta key indicating restriction
$meta_query = array(
array(
'key' => '_pp_restricted',
'compare' => 'NOT EXISTS'
)
);
$query->set('meta_query', $meta_query);
}
return $search;
}, 10, 2);
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site with ProfilePress plugin version <= 4.15.18 installed and active.
- At least one post restricted to administrator role.
Steps:
- Identify the target WordPress site.
- Perform a search query targeting restricted content:
curl -s "http://target-site.com/?s=confidential+data" - Examine the search results page for restricted post titles or excerpts.
- If the site uses REST API, try:
curl -s "http://target-site.com/wp-json/wp/v2/posts?search=confidential"
Expected Output: The response will include posts that should be hidden from unauthenticated users.
Blue Team (Detection & Hardening)
Detection:
- Monitor search query logs for unusual patterns (e.g., repeated searches for sensitive terms).
- Check for REST API requests with
searchparameter from unauthenticated IPs.
Hardening:
- Disable the ProfilePress plugin until a patch is available.
- Implement a Web Application Firewall (WAF) rule to block search queries from unauthenticated users for sensitive terms.
- Use a security plugin to restrict search functionality for non-logged-in users.
Indicators of Compromise (IOCs)
- Network: HTTP GET requests to
/?s=<keyword>or/wp-json/wp/v2/posts?search=<keyword>from unauthenticated sources. - Logs: WordPress search logs showing queries for terms like "admin", "confidential", "restricted".
- File: No specific file IOCs; the vulnerability is logic-based.
Detection Engineering
YARA Rule
rule CVE_2024_11083_ProfilePress_Search_Exposure {
meta:
description = "Detects exploitation attempts for CVE-2024-11083 via search queries"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-11083"
strings:
$search_param = "?s="
$rest_api_search = "/wp-json/wp/v2/posts?search="
$restricted_keyword = /(admin|confidential|restricted|secret)/i
condition:
any of ($search_param, $rest_api_search) and $restricted_keyword
}
Sigma Rule
title: CVE-2024-11083 ProfilePress Search Exposure
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthenticated search queries targeting restricted content
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- "?s="
- "/wp-json/wp/v2/posts?search="
sc-status: 200
c-ip|notcontains: "127.0.0.1"
condition: selection
falsepositives:
- Legitimate search queries from authenticated users
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-11083 ProfilePress Search Exposure"; flow:to_server; content:"?s="; http_uri; nocase; content:"/wp-json/wp/v2/posts?search="; http_uri; nocase; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the ProfilePress plugin until a patched version is released.
- Restrict search functionality for unauthenticated users using a security plugin or custom code.
- Monitor logs for suspicious search queries.
Long-term Fix:
- Apply the official patch once released by the vendor.
- Implement role-based access controls for search results.
- Regularly update all WordPress plugins.
Workaround:
- Add the following code to the theme’s
functions.phpto block search for unauthenticated users:
add_action('pre_get_posts', function($query) {
if (!is_admin() && $query->is_search() && !is_user_logged_in()) {
$query->set('post__in', array(0)); // Return no results
}
});
Valters IT
Securing Digital Frontiers
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.