Description
The Loco Translate plugin for WordPress is vulnerable to Path Traversal in all versions up to, and including, 2.8.2 via the `fsReference` AJAX route. This is due to the `findSourceFile()` method normalizing user-supplied `ref` paths containing `../` directory traversal sequences without validating that the resolved path remains within the intended bundle or content directory. This makes it possible for authenticated attackers, with Translator-level access and above (custom `loco_admin` capability required, granted to the `translator` role and administrators by default), to read arbitrary `.php`, `.js`, `.json`, and `.twig` files from the server filesystem outside the intended translation directory. Files named wp-config.php are excluded.
Problem types
CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Product status
Any version
Timeline
| 2026-05-04: | Disclosed |
Credits
Angus Girvan
References
www.wordfence.com/...-a08c-40ed-b756-81e703b2277a?source=cve
plugins.trac.wordpress.org/...ajax/FsReferenceController.php
plugins.trac.wordpress.org/...ajax/FsReferenceController.php
plugins.trac.wordpress.org/...ajax/FsReferenceController.php
plugins.trac.wordpress.org/...ajax/FsReferenceController.php
plugins.trac.wordpress.org/...k/tpl/admin/config/version.php
plugins.trac.wordpress.org/...h=%2Floco-translate/tags/2.8.3