Rapid7 Vulnerability & Exploit Database

Craft CMS unauthenticated Remote Code Execution (RCE)

Back to Search

Craft CMS unauthenticated Remote Code Execution (RCE)

Disclosed
09/13/2023
Created
12/22/2023

Description

This module exploits Remote Code Execution vulnerability (CVE-2023-41892) in Craft CMS which is a popular content management system. Craft CMS versions between 4.0.0-RC1 - 4.4.14 are affected by this vulnerability allowing attackers to execute arbitrary code remotely, potentially compromising the security and integrity of the application. The vulnerability occurs using a PHP object creation in the `\craft\controllers\ConditionsController` class which allows to run arbitrary PHP code by escalating the object creation calling some methods available in `\GuzzleHttp\Psr7\FnStream`. Using this vulnerability in combination with The Imagick Extension and MSL which stands for Magick Scripting Language, a full RCE can be achieved. MSL is a built-in ImageMagick language that facilitates the reading of images, performance of image processing tasks, and writing of results back to the filesystem. This can be leveraged to create a dummy image containing malicious PHP code using the Imagick constructor class delivering a webshell that can be accessed by the attacker, thereby executing the malicious PHP code and gaining access to the system. Because of this, any remote attacker, without authentication, can exploit this vulnerability to gain access to the underlying operating system as the user that the web services are running as (typically www-data).

Author(s)

  • h00die-gr3y <h00die.gr3y@gmail.com>
  • Thanh
  • chybeta

Platform

Linux,PHP,Unix

Architectures

cmd, php, x64, x86

Development

Module Options

To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':

msf > use exploit/linux/http/craftcms_unauth_rce_cve_2023_41892
msf exploit(craftcms_unauth_rce_cve_2023_41892) > show targets
    ...targets...
msf exploit(craftcms_unauth_rce_cve_2023_41892) > set TARGET < target-id >
msf exploit(craftcms_unauth_rce_cve_2023_41892) > show options
    ...show and set options...
msf exploit(craftcms_unauth_rce_cve_2023_41892) > exploit

Time is precious, so I don’t want to do something manually that I can automate. Leveraging the Metasploit Framework when automating any task keeps us from having to re-create the wheel as we can use the existing libraries and focus our efforts where it matters.

– Jim O’Gorman | President, Offensive Security

;