CVE-2026-1921
WordPress vulnerability analysis and mitigation

Overview

CVE-2026-1921 is a Path Traversal vulnerability in the Loco Translate plugin for WordPress, affecting all versions up to and including 2.8.2. The flaw resides in the fsReference AJAX route, where the findSourceFile() method fails to validate that user-supplied ref paths containing ../ sequences remain within the intended directory. It was published on May 5, 2026, with a patch released in version 2.8.3. The vulnerability carries a CVSS v3.1 base score of 4.9 (Medium), requiring high privileges (Translator-level access) for exploitation (GitHub Advisory, Wordfence).

Technical details

The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory), where the findSourceFile() method in FsReferenceController.php normalizes user-supplied ref parameters containing ../ directory traversal sequences but does not subsequently verify that the resolved path stays within the intended bundle or WordPress content directory. An authenticated attacker with the loco_admin capability (granted by default to the translator role and administrators) can craft a malicious AJAX request to the fsReference route with a traversal payload in the ref parameter to read arbitrary .php, .js, .json, and .twig files from the server filesystem. Notably, files named wp-config.php are explicitly excluded from the vulnerability's scope (GitHub Advisory, WordPress Trac).

Impact

Successful exploitation allows authenticated attackers with Translator-level access to read arbitrary .php, .js, .json, and .twig files from anywhere on the server filesystem outside the intended translation directory. This could expose sensitive application source code, configuration files containing credentials or API keys, and other confidential data stored on the server. While direct database access is not possible through this vulnerability and wp-config.php is excluded, other sensitive PHP configuration files or custom scripts containing credentials could still be exfiltrated, potentially enabling further compromise (Wordfence, GitHub Advisory).

Exploitability

As of the time of disclosure, there is no public proof-of-concept exploit and no evidence of active in-the-wild exploitation (Wordfence). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.286–0.311%, placing it around the 55th percentile, indicating a relatively low but non-negligible probability of exploitation within 30 days. Exploitation requires authenticated access with the loco_admin capability, which limits the attack surface to users who have been granted the Translator role or higher (GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify WordPress sites running the Loco Translate plugin version 2.8.2 or earlier. This can be done by checking the plugin's readme.txt file (e.g., /wp-content/plugins/loco-translate/readme.txt) or via WordPress plugin enumeration tools.
  2. Obtain Translator credentials: Acquire valid credentials for an account with the loco_admin capability — this includes users assigned the translator role or any administrator account.
  3. Authenticate: Log in to the WordPress site using the obtained credentials to establish an authenticated session and retrieve a valid WordPress nonce.
  4. Craft malicious AJAX request: Send a POST request to the WordPress AJAX endpoint (/wp-admin/admin-ajax.php) targeting the fsReference action, supplying a ref parameter containing directory traversal sequences (e.g., ref=../../../../etc/passwd or ref=../../../some/sensitive/file.php).
  5. Read arbitrary files: The findSourceFile() method normalizes the path without boundary validation, causing the server to resolve and return the contents of the targeted file outside the intended translation directory, exposing sensitive .php, .js, .json, or .twig files (GitHub Advisory, WordPress Trac).

Indicators of compromise

  • Network: Unusual POST requests to /wp-admin/admin-ajax.php with the action=fs_reference (or equivalent fsReference action) parameter containing ../ sequences or URL-encoded traversal patterns (%2e%2e%2f) in the ref field.
  • Logs: WordPress or web server access logs showing repeated AJAX requests to admin-ajax.php with anomalous ref parameter values pointing to paths outside /wp-content/; HTTP 200 responses to such requests from Translator-level user accounts.
  • File System: No direct file system artifacts are expected from read-only exploitation, but evidence of subsequent actions (e.g., new files, modified configurations) may indicate chained attacks using information obtained via this vulnerability.
  • Process/Behavior: Unexpected access patterns from Translator-role accounts, particularly AJAX calls outside normal translation workflow activity (Wordfence).

Mitigation and workarounds

Update the Loco Translate plugin to version 2.8.3 or later, which addresses the path traversal vulnerability by properly validating that resolved file paths remain within the intended bundle or content directory (WordPress Trac). As a configuration-based workaround, restrict the loco_admin capability to only trusted administrators and minimize the number of users assigned the translator role. Additionally, monitor AJAX requests to the fsReference route for suspicious path traversal patterns as a detection measure until patching is complete (Wordfence).

Community reactions

Wordfence, which discovered and reported the vulnerability, included it in their weekly WordPress vulnerability reports for the weeks of May 4–10 and May 11–17, 2026 (Wordfence Weekly May 4, Wordfence Weekly May 11). Sucuri also noted the vulnerability in their May 2026 vulnerability patch roundup (Sucuri Blog). Community reaction has been measured given the medium severity rating and the requirement for authenticated access, with no significant alarm or widespread discussion observed.

Additional resources


SourceThis report was generated using AI

Related WordPress vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-15439MEDIUM6.5
  • gamipress
NoYesSep 11, 2026
CVE-2026-85116MEDIUM6.5
  • simple-cloudflare-turnstile
NoYesSep 11, 2026
CVE-2026-86809MEDIUM5.3
  • persian-elementor
NoYesSep 11, 2026
CVE-2026-86813MEDIUM4.8
  • metform
NoYesSep 11, 2026
CVE-2024-12145MEDIUM4.3
  • buddypress
NoYesSep 11, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management