Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend BuddyPress AJAX directory request
-
DeliverySet crafted bps_directory cookie and spoofed Referer
-
ExploitBypass referer-derived page check
-
ExecutionInclude attacker-chosen PHP via bp_locate_template
-
PersistExecute included PHP payload
-
ImpactRemote code execution on server
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V5 - File Handling File inclusion prevention, allowlisting
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Command and Control The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the BP Profile Search plugin (<= 5.9) active on a WordPress site with BuddyPress installed, since the flaw is in the bps_directory_ajax() filter hooked onto bp_legacy_object_template_path/bp_nouveau_object_template_path during BuddyPress AJAX directory requests. The LFI primitive needs no authentication and no special configuration: the attacker fully controls the 'ajax_template' value via the 'bps_directory' cookie and controls the referer-derived 'page' comparison via HTTP_REFERER during AJAX, and there is no basename restriction, whitelist, or path-traversal check. The escalation to remote code execution is LIMITED by one real prerequisite - an includable PHP file must already be present on the server (e.g., a separate file-upload capability allowing PHP, or default container images such as wordpress:php8); without such a file the attacker is constrained to including existing server-side PHP, which still risks information disclosure and unintended code execution. |
| Impact | This is a genuine high-priority issue, not an inflated CVSS score. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N) describes an unauthenticated, network-reachable flaw with high impact to confidentiality, integrity, and availability (C:H/I:H/A:H), consistent with CWE-98 PHP Local File Inclusion that can escalate to remote code execution. The AC:H rating is the key tempering signal: while the LFI primitive itself is easy to reach (the attacker controls both the 'bps_directory' cookie and the HTTP_REFERER used for the 'page' comparison), turning inclusion into full RCE requires an includable PHP payload already present on disk (an uploadable PHP file, or default images such as wordpress:php8), which raises practical complexity. No EPSS score was provided in the input, so exploitation probability cannot be quantified. The vulnerability is NOT listed in CISA KEV and no public proof-of-concept is referenced, so the correct status is no public exploit identified at time of analysis. Conflicting-signal note: the description characterizes exploitation as unauthenticated and remote (aligning with PR:N/AV:N), but full code execution is contingent on server-side conditions not guaranteed in every deployment - defenders should treat the baseline (arbitrary PHP file inclusion / information disclosure) as always-on and RCE as condition-dependent. Because it was reported by Wordfence (a reputable WordPress security vendor) and affects all versions up to and including 5.9 with a fix in 6.0, patching should be prioritized for any site running this plugin. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a BuddyPress AJAX directory request to a WordPress site running BP Profile Search, setting a crafted 'bps_directory' cookie whose 'ajax_template' value points at an arbitrary path and spoofing the HTTP Referer to satisfy the page comparison; the plugin appends '.php' and passes it to bp_locate_template() with no whitelist or traversal check, including attacker-chosen PHP. If an includable PHP file exists on the server (via a separate upload vector or default container images like wordpress:php8), this yields remote code execution. No public exploit code is referenced at time of analysis, but the vulnerable code paths are documented in the public plugin source (trac). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Unauthenticated local file inclusion in the BP Profile Search plugin for WordPress (versions up to and including 5.9) lets an attacker force the site to include an arbitrary PHP file by supplying an 'ajax_template' value inside the client-controlled 'bps_directory' cookie during BuddyPress AJAX directory requests. No authentication or special configuration is required, and the plugin performs no basename restriction, whitelist, or path-traversal validation before appending '.php' and passing the value to bp_locate_template(); escalation to full remote code execution is conditional on an includable PHP file already existing on the server (for example via a separate file-upload weakness or default container images such as wordpress:php8), while without such a file the attacker is limited to including existing server-side PHP, which still risks information disclosure and unintended code execution. No public exploit identified at time of analysis, and the issue is not listed in CISA KEV; the assessed vector is CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H (8.1), with the High attack-complexity reflecting the RCE precondition.
RemediationAI
Vendor-released patch: update BP Profile Search to version 6.0 (or later), which is the version carrying the corrected bps-directory.php code; the fix is visible in the plugin's changeset https://plugins.trac.wordpress.org/changeset/3737650 and the updated 6.0 source at https://plugins.trac.wordpress.org/browser/bp-profile-search/tags/6.0/bps-directory.php, with the vendor advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/a35419ff-a342-4480-9288-e98dee5afabc?source=cve. If the upgrade cannot be applied immediately, deactivate the BP Profile Search plugin until it can be patched, since the vulnerable filter only exists in the plugin; if the plugin must stay enabled, a compensating control is to strip or reject requests carrying a 'bps_directory' cookie with an 'ajax_template' value containing path separators, dots, or null bytes, and to drop or rewrite client-supplied HTTP_REFERER values for BuddyPress AJAX endpoints - both approaches carry the trade-off of potentially breaking legitimate plugin directory pagination/template selection. Additionally, reduce the impact of the RCE escalation by ensuring no attacker-uploadable PHP is reachable on the server: enforce that the uploads directory cannot execute PHP, disable any additional upload plugins that permit PHP files, and avoid running the WordPress application from container images such as wordpress:php8 that ship includable PHP files at predictable paths, since the LFI-to-RCE step depends entirely on an includable PHP file already being present.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
BP Profile Search is a BuddyPress companion plugin that renders member directories, and its directory handling is implemented in bps-directory.php, where the bps_directory_ajax() filter is hooked onto the BuddyPress template-resolution filters bp_legacy_object_template_path and bp_nouveau_object_template_path. During BuddyPress AJAX directory requests, that filter reads the attacker-controlled 'bps_directory' cookie, extracts the 'ajax_template' value, and passes it through bps_get_directory_data(), which only performs a 'page' comparison derived from bps_current_page() - a function that relies on the HTTP_REFERER header during AJAX and is therefore also attacker-controlled. The template value is then suffixed with '.php' and handed to bp_locate_template() without basename(), whitelist, or path-traversal checks. This is the classic CWE-98 pattern (improper control of filename in a PHP include/require statement, i.e., PHP remote/local file inclusion): the attacker influences a path consumed by an include-like template loader. CPE data identifies the affected package as cpe:2.3:a:dontdream:bp_profile_search:*:*:*:*:*:*:*:*, i.e., the dontdream-maintained plugin across the vulnerable range, with the code path reachable only when BuddyPress is installed and active, since the hooks originate from BuddyPress template resolution.
Know when Bp Profile Search gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated and network-reachable (AV:N/PR:N/UI:N); AC:H because reliable RCE depends on an includable PHP payload existing on the server; full C/I/A impact via code execution.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The BP Profile Search plugin for WordPress is vulnerable to Local File Inclusion in versions up to, and including, 5.9 via the 'ajax_template' value parsed from the client-controlled 'bps_directory' cookie during BuddyPress AJAX directory requests. The bps_directory_ajax() filter (hooked onto bp_legacy_object_template_path and bp_nouveau_object_template_path) reads the cookie, applies only a referer-derived 'page' comparison in bps_get_directory_data() (where bps_current_page() uses HTTP_REFERER during AJAX and is therefore also attacker-controlled), and then suffixes the attacker-controlled template value with '.php' and passes it to bp_locate_template() with no basename restriction, no whitelist, and no path-traversal check. This makes it possible for unauthenticated attackers to include arbitrary PHP files on the server, which can lead to remote code execution when PHP files can be uploaded or when images such as the default wordpress:php8.
Executive ViewAI
The BP Profile Search plugin for WordPress, versions up to and including 5.9, contains a high-severity local file inclusion vulnerability that can expose sensitive server-side files and, in some environments, enable remote code execution. Organizations using this plugin on BuddyPress-enabled WordPress sites should prioritize mitigation because a compromise could affect data confidentiality, site integrity, and availability.
Disable or remove the BP Profile Search plugin (versions up to and including 5.9) until a vendor patch is released; enforce WAF rules to reject path traversal and arbitrary 'ajax_template' values in the 'bps_directory' cookie on BuddyPress AJAX requests; restrict or monitor BuddyPress AJAX directory endpoints; ensure no writable or includable PHP files exist in web-accessible directories; and monitor for signs of local file inclusion or unexpected PHP execution.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Local File Inclusion vulnerabilities occur when an application accepts user-controlled input to specify which file should be loaded or executed, typically through functions like PHP's `include()`, `require()`, or `fopen()`.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
EUVD-2026-100768
GHSA-46v5-32pc-qx73
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB