CVE-2026-15005
Loco Translate <= 2.8.5 - Cross-Site Request Forgery to Remote Code Execution via 'template' Parameter
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
CISA's decision points: whether it is exploited, whether attacks can be automated, and how much control an attacker gets. Assessed (SSVC 2.0.3).What do these mean? →
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
The Loco Translate plugin for WordPress is vulnerable to Cross-Site Request Forgery in all versions up to, and including, 2.8.5. This is due to missing or incorrect nonce validation on the execTemplate function. This makes it possible for unauthenticated attackers to execute arbitrary PHP code on the server by supplying a php://filter stream wrapper URI as the 'template' parameter, which bypasses path validation and is passed directly to the include sink in execTemplate() via a forged request granted they can trick a site administrator into performing an action such as clicking on a link.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- timwhitlock Loco Translate
through 2.8.5
References 10
plugins.trac.wordpress.org
- browser/loco-translate/tags/2.8.5/src/mvc/View.php#L274
- browser/loco-translate/tags/2.8.5/src/mvc/View.php#L273
- browser/loco-translate/tags/2.8.5/src/mvc/AdminController.php#L38
- browser/loco-translate/tags/2.8.5/src/mvc/AdminRouter.php#L128
- browser/loco-translate/tags/2.8.3/src/mvc/View.php#L274
- browser/loco-translate/tags/2.8.3/src/mvc/View.php#L273
- browser/loco-translate/tags/2.8.3/src/mvc/AdminController.php#L38
- browser/loco-translate/tags/2.8.3/src/mvc/AdminRouter.php#L128
- changeset?reponame=&old=3603894%40loco-translate&new=3603894%40loco-translate