Headline
Transposh WordPress Translation 1.0.8.1 Cross Site Request Forgery
Transposh WordPress Translation versions 1.0.8.1 and below suffer from cross site request forgery vulnerabilities.
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 Request Forgery [CWE-253]
Date found: 2021-08-19
Date published: 2022-07-22
CVSSv3 Score: 5.5 (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:L)
CVE: CVE-2021-24912CREDITS
==========
This vulnerability was discovered and researched by Julien Ahrens from
RCE Security.VERSIONS AFFECTED
====================
Transposh WordPress Translation 1.0.8.1 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 WordPress plugin lacks anti-CSRF protection on a lot of its functionalities
such as the following WordPress ajax actions:
tp_backup - Initiates a new backup
tp_reset - Resets the plugin’s configuration
tp_cleanup - Deletes automated translations
tp_dedup - Deletes duplicates
tp_maint - Fixes internal errors
tp_translate_all - Triggers an auto-translation of all entries
tp_translation - Adds a new translation for a given item
Since there is no anti-CSRF token protecting these functionalities, they are
vulnerable to Cross-Site Request Forgery attacks allowing an attacker to perform
a variety of attacks as mentioned above.
To successfully exploit this vulnerability, a user with the right to access the
Transposh “Utilities” or the right to add new translations must be tricked into
visiting an arbitrary website while having an authenticated session in the
application.
- PROOF OF CONCEPT
===================
An exemplary exploit to reset the plugin’s configuration:
<html>
<body>
<form action="http://[host]/wp-admin/admin-ajax.php" method="POST">
<input type="hidden" name="action" value="tp_reset" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
SOLUTION
===========
None. Remove the plugin to prevent exploitation.REPORT 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-24912
2022-05-22: Sent request for status update on the fix
2022-05-24: Vendor states that there is no updated planned so far
2022-07-22: Public disclosureREFERENCES
=============
https://github.com/MrTuxracer/advisories
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 have CSRF check in its tp_translation AJAX action, which could allow attackers to make authorised users add a translation. Given the lack of sanitisation in the tk0 parameter, this could lead to a Stored Cross-Site Scripting issue which will be executed in the context of a logged in admin