IE6 SP1 Notes

From: Thor Larholm (thorat_private)
Date: Tue Sep 10 2002 - 08:38:28 PDT

  • Next message: Mandrake Linux Security Team: "MDKSA-2002:057 - krb5 update"

    Some initial notes on Internet Explorer 6 Service Pack 1.
    
    Test versions:
    The IE6 SP1 which was released to Microsoft's download servers in early
    August was build 6.0.2800.1082, which formed the preliminary basis of these
    notes. The final build of IE6 SP1 is 6.0.2800.1106, and these notes still
    apply.
    
    Several unpatched vulnerabilities are fixed:
    Several of the vulnerabilities listed on http://pivx.com/larholm/unpatched/
    are fixed in this Service Pack. This includes, but is probably not limited
    to, cssText and DynSrc. When these are also patched in IE5 and 5.5, it will
    bring down the number a bit (currently 20 publicly known unpatched
    vulnerabilities).
    
    Cross-protocol linking crippled for res:// and file:// links:
    Links in the Internet Zone (any http:// page) that point to a res:// or
    file:// no longer work, even when clicked manually. Trying to
    programmatically open a res:// or file:// link from the Internet Zone yields
    a very clear "Access is denied" error.
    
    Good job on this one, Microsoft! Finally a display of good intent, "security
    over functionality", this even break your very own autosearch functionality
    in the browser (
    http://auto.search.msn.com/response.asp?MT=www.unresolvingdomain.com&srch=5&
    prov=&utf8 no longer works ) and will definitely cripple a lot of
    functionality in many places.
    
    ..Ironically, though, the fix itself opens up a way to circumvent this
    security measure. You can still open any file:// or res:// file
    automatically with
    
    <object type="text/html" data="redirect.asp"></object>
    
    where redirect.asp makes a HTTP redirect using this HTTP header:
    
    Location: file://c:/test.txt
    
    Whenever a child window object experiences a DNS error (such as the one
    caused in SP1 by trying to link to a res:// or file:// page), the location
    of that window object is transferred from the child window object to the top
    window object so that the user is aware of what is happening. Microsoft
    forgot to check this crucial step of their otherwise well meant approach to
    foreign protocol checks. When the DNS error propagates to the top window
    object, the location is exchanged to that specified by the HTTP redirect.
    
    A demonstration is available at
    http://jscript.dk/2002/9/sec/ie6sp1resfile.html
    
    Another issue with this security measure is that it is only applied for the
    Internet Zone. If you are a malicious intranet user (and thus in the
    Intranet Zone), then you can still link to res:// and file:// pages without
    hassle whatsoever (hint provided by the folks at GreyMagic).
    
    To top it off, automating a workaround for this is so easy that you will not
    have to change any of your existing res:// or file:// links. All you have to
    do is include a corrective script, such as
    http://jscript.dk/2002/9/sec/ie6sp1resfile.html, after which any of your
    cross-protocol links will work again.
    
    codeBase local path:
    Lately there have been a lot of "arbitrary command execution"
    vulnerabilities, all of which use the "codebase local path" trick together
    with cross-protocol scripting.
    The developer notes in IE6's README file says.
    
    OBJECT HTML tag
    -------------------------------------------------
    The codeBase attribute of an OBJECT tag can no longer specify a
    local path.
    
    This is incorrect, try http://jscript.dk/2002/8/sec/ie6sp1codebase.html if
    you have installed SP1. The codebase attribute can, and will, still be
    abused to execute arbitrary programs. Not being able to pass parameters is
    irrelevant when there are so many ways to get arbitrary files on the users
    local file system in a known location (look at WMP Stench for an example).
    
    The about: protocol:
    The about: protocol, sometimes used by programmers as an intermediate
    document creation storage, no longer works - at all. This has the effect of
    stopping a number of vulnerability components from working, since many of
    these vulnerabilities rely on the fact that about: was accessible from any
    protocol.
    This is likely to break some functionality, but is irrelevant since about:
    shouldn't be used as a proxy in production code anyhow.
    
    Window placement restrictions do not work after all:
    The developer notes in IE6's README file says:
    
    Window placement
    -------------------------------------------------
    Windows can no longer be moved off the screen using the move, resize,
    and open methods of the window object.
    
    This is simply incorrect, you can still position a window outside the
    screen, with both the move and open methods.
    
    Window size restrictions do not work after all:
    The developer notes in IE6's README file says:
    
    Window.open can no longer open in full-screen mode
    ---------------------------------------------------
    In Internet and Restricted Sites zones, window.open can no longer open
    in full-screen "kiosk" mode.
    
    This is also incorrect, you can still open full-screen windows in the
    Internet Zone.
    
    Uninstalling Service Pack 1:
    If you upgraded from IE5.5 to IE6 prior to applying IE6 SP1, you are in
    trouble. Uninstalling IE6 SP1 will then uninstall the entire IE6, instead of
    only the Service Pack.
    
    Some may call this a feature ;)
    
    Regards
    Thor Larholm, Security Researcher
    PivX Solutions, LLC
    
    Are You Secure?
    http://www.PivX.com
    



    This archive was generated by hypermail 2b30 : Tue Sep 10 2002 - 08:48:02 PDT