Transposh WordPress Translation versions 1.0.8.1 and below suffer from cross site request forgery vulnerabilities.
00f492b81f8c36b3158ff92303a3ed9b8713a137b201a866100dd6430cd9a03c
RCE Security Advisory
https://www.rcesecurity.com
1. 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-24912
2. CREDITS
==========
This vulnerability was discovered and researched by Julien Ahrens from
RCE Security.
3. VERSIONS AFFECTED
====================
Transposh WordPress Translation 1.0.8.1 and below
4. INTRODUCTION
===============
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)
5. 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.
6. 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>
7. SOLUTION
===========
None. Remove the plugin to prevent exploitation.
8. 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 disclosure
9. REFERENCES
=============
https://github.com/MrTuxracer/advisories