Skip to main content

Prevent Direct Access CVE-2026-3835

| EUVDEUVD-2026-57720 MEDIUM
Improper Authorization (CWE-285)
2026-08-13 Wordfence GHSA-xxpw-3xg9-qwph
5.3
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify WordPress site with Prevent Direct Access plugin active
  2. Delivery
    Locate or infer the plugin's file download endpoint URL
  3. Exploit
    Submit HTTP GET request with token parameter set to `%`
  4. Execution
    SQL LIKE clause matches first record in plugin file table
  5. Impact
    Server returns protected file without credential validation

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization verification
MITRE ATT&CK

1 technique across 1 tactic: Defense Evasion

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The target WordPress site must have the Prevent Direct Access plugin installed and active in versions 2.8.8.8 or earlier, and at least one file must be enrolled in the plugin's protection system (i.e., the plugin's file table is non-empty). The attacker must be able to reach the WordPress file download endpoint over the network and know or discover the download URL structure - no authentication is required per CVSS PR:N. Exploitation does not require a specific server configuration beyond the plugin being active. Limiting factors: only files explicitly protected by this plugin are reachable; files stored elsewhere on the server or not registered with the plugin are unaffected. There is no user interaction required and no platform restriction beyond WordPress hosting.

Impact

The NVD CVSS 5.3 (Medium) score reflects the narrow, well-bounded impact: only files explicitly enrolled in the plugin's protection are reachable, and confidentiality impact is rated Low (C:L) with no integrity or availability consequence (I:N/A:N). However, from a business-risk perspective, the severity is functionally higher for any site relying on this plugin - its entire value proposition (protecting files) is nullified by a single-character token bypass. Attack complexity is genuinely low (AC:L): the exploit requires no brute force, no race condition, and no elevated position on the network; a single HTTP request with % as the token is sufficient. EPSS data was not provided in the input and cannot be stated. No CISA KEV listing and no public POC are documented in the source data, so this is not confirmed actively exploited. CVSS signals and description are fully consistent - no conflicting data detected. Priority should be driven by whether the site monetizes or access-controls files through this plugin; if so, impact is high despite the medium score.

Exploit ScenarioDerived

An attacker visits a WordPress site, identifies the Prevent Direct Access file download endpoint (e.g., via the predictable URL structure documented in the plugin's download.php), and sends an HTTP GET request with the token parameter set to %. The unescaped wildcard causes the SQL LIKE query to match the first protected file record in the database, and the plugin serves the file contents to the attacker without any valid credentials or prior knowledge of the actual token value.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 13, 2026

Token bypass in the Prevent Direct Access - Protect WordPress Files plugin (versions ≤2.8.8.8) allows unauthenticated remote attackers to download any file the plugin is configured to protect. The get_advance_file_by_url() method in includes/repository.php performs token validation using a SQL LIKE clause without sanitizing input via $wpdb->esc_like(), meaning a request supplying % as the token value matches any record in the plugin's file table and causes the server to return the protected file. No public exploit has been identified at time of analysis, and the vendor-released fix is available in version 2.8.8.9.

RemediationAI

Update the Prevent Direct Access plugin to version 2.8.8.9 or later immediately. The fix is confirmed in the WordPress SVN changeset at https://plugins.trac.wordpress.org/changeset?reponame=&new=3637502%40prevent-direct-access%2Ftags%2F2.8.8.9&old=3524320%40prevent-direct-access%2Ftags%2F2.8.8.8, which introduces proper $wpdb->esc_like() sanitization in repository.php. As a temporary compensating control before patching, administrators can add .htaccess or Nginx rules that block requests containing % (URL-encoded as %25) to the plugin's download endpoint path - note this may interfere with legitimate token URLs that contain percent-encoded characters and should be tested carefully. Alternatively, disabling the plugin eliminates the attack surface but also removes file protection, making previously protected files accessible via their original upload URLs. Neither workaround substitutes for the patch.

Affected VersionsENISA

Prevent Direct Access – Protect WordPress Files 0 ≤2.8.8.8

Affected Packages

euvd prevent_direct_access_protect_wordpress_files no fix

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

The plugin's core function is to intercept direct file download requests and gate them behind a private token stored in a custom database table. The vulnerable code path, get_advance_file_by_url() in includes/repository.php (line 221), constructs a SQL query using WordPress's $wpdb abstraction with a LIKE operator to match the caller-supplied token against stored values. Because $wpdb->esc_like() is not called before interpolating the token into the query, MySQL wildcard characters - specifically % (matches any sequence of characters) and _ (matches any single character) - are passed through unescaped. A token value of % therefore satisfies the LIKE condition for every row in the table, returning the first matching record and granting access to its associated file. The CWE-285 (Improper Authorization) root cause is accurate: the authorization gate itself is bypassed rather than a secondary injection exploited. CPE cpe:2.3:a:buildwps:prevent_direct_access_-_protect_wordpress_files:*:*:*:*:*:*:*:* confirms the scope is the plugin by BuildWPS across all versions through 2.8.8.8.

Know when Wordpress Plugin 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

Vendor (Wordfence) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 5.3 MEDIUM

Network-reachable endpoint, trivially simple bypass (single wildcard character), no auth required, and confidentiality impact is bounded to plugin-managed files only.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

DescriptionCVE.org

The Prevent Direct Access - Protect WordPress Files plugin for WordPress is vulnerable to unauthorized access of protected files due to insufficient token validation in the get_advance_file_by_url() method in all versions up to, and including, 2.8.8.8 The method uses a SQL LIKE operator for token lookup without escaping wildcard characters via $wpdb->esc_like(). This makes it possible for unauthenticated attackers to bypass the private token requirement by supplying SQL wildcard characters (such as %) as the token value, matching any record in the plugin's file table and downloading any protected file.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
specialized WordPress file-gating plugin, niche enterprise use case
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-11749 CRITICAL POC
9.8 Nov 05

The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy