Headline
Transposh WordPress Translation 1.0.7 Cross Site Scripting
Transposh WordPress Translation versions 1.0.7 and below have an ajax action “tp_tp” that is vulnerable to an unauthenticated/authenticated reflected cross site scripting vulnerability when user-supplied input to the HTTP GET parameter “q” is processed by the web application. Since the application does not properly validate and sanitize this parameter, it is possible to place arbitrary script code onto the same page.
RCE Security Advisory
https://www.rcesecurity.com
ADVISORY INFORMATION
=======================
Product: Transposh WordPress Translation
Vendor URL: https://wordpress.org/plugins/transposh-translation-filter-for-wordpress/
Type: Cross-Site Scripting [CWE-79]
Date found: 2021-08-19
Date published: 2022-07-22
CVSSv3 Score: 4.7 (CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N)
CVE: CVE-2021-24910CREDITS
==========
This vulnerability was discovered and researched by Julien Ahrens from
RCE Security.VERSIONS AFFECTED
====================
Transposh WordPress Translation 1.0.7 and belowINTRODUCTION
===============
Transposh translation filter for WordPress offers a unique approach to blog
translation. It allows your blog to combine automatic translation with human
translation aided by your users with an easy to use in-context interface.
(from the vendor’s homepage)
- VULNERABILITY DETAILS
========================
The plugin’s ajax action “tp_tp” is vulnerable to an unauthenticated/authenticated
reflected Cross-Site Scripting vulnerability when user-supplied input to the HTTP
GET parameter “q” is processed by the web application. Since the application does
not properly validate and sanitize this parameter, it is possible to place
arbitrary script code onto the same page.
This offers a wide range of possible attacks such as redirecting the user to a
malicious page, spoofing content on the page or attacking the browser and its
plugins. Since all session-relevant cookies are protected by HTTPOnly, it is not
possible to hijack sessions.
- PROOF OF CONCEPT
===================
The following PoC triggers a JavaScript alert:
http://[host]/wp-admin/admin-ajax.php?action=tp_tp&e=g&m=s&tl=en&q=<img%20src%3dx%20onerror%3dalert(document.cookie)>
SOLUTION
===========
Update to Transposh 1.0.8.1REPORT TIMELINE
==================
2021-08-19: Discovery of the vulnerability
2021-08-20: Contacted the vendor via their contact form
2021-08-20: Vendor response
2021-08-20: Sent all the PoC exploits
2021-08-20: Vendor acknowledges the issues
2021-09-14: Requested status update from vendor
2021-10-07: No response from vendor, requested status update again
2021-10-25: CVE requested from WPScan (CNA)
2021-10-27: WPScan assigns CVE-2021-24910
2022-02-22: Vendor releases 1.0.8 which fixes this vulnerability
2022-07-22: Public disclosureREFERENCES
=============
https://github.com/MrTuxracer/advisories
https://transposh.org/version-1-0-8-thanks-julien/
Related news
The Transposh WordPress Translation plugin for WordPress is vulnerable to unauthorized setting changes by unauthenticated users in versions up to, and including, 1.0.8.1. This is due to insufficient permissions checking on the 'tp_translation' AJAX action and default settings which makes it possible for unauthenticated attackers to influence the data shown on the site.
The Transposh WordPress Translation WordPress plugin before 1.0.8 does not sanitise and escape the a parameter via an AJAX action (available to both unauthenticated and authenticated users when the curl library is installed) before outputting it back in the response, leading to a Reflected Cross-Site Scripting issue