Extremely Critical Firefox Advisory


Recommended Posts

Advisory released just today

Source: Secunia.com crit_5.gif

Peter Zelezny has discovered a vulnerability in Firefox, which can be exploited by malicious people to compromise a user's system.

The vulnerability is caused due to the shell script used to launch Firefox parsing shell commands that are enclosed within backticks in the URL provided via the command line. This can e.g. be exploited to execute arbitrary shell commands by tricking a user into following a malicious link in an external application which uses Firefox as the default browser (e.g. the mail client Evolution on Red Hat Enterprise Linux 4).

This vulnerability can only be exploited on Unix / Linux based environments.

The vulnerability has been confirmed in version 1.0.6 on Fedora Core 4 and Red Hat Enterprise Linux 4. Other versions and platforms may also be affected.

Link to comment
https://www.neowin.net/forum/topic/374829-extremely-critical-firefox-advisory/
Share on other sites

I don't see how this can be extremely critical. You actually have to execute this from the command line for it to work.

bash # firefox http://local`df`host

You can't just plug in the url into the address bar of a currently open window and have it start executing commands.

Correct me if I'm wrong, but in order to fix this you'd only have to do this:

-Open /usr/libexec/mozilla-launcher with a text editor.

-Scroll down to the parse_cmdline() bit.

-Scroll down a bit more to the part where it starts parsing urls. It begins like this:

if [[ $1 == *: //*/* ]]; then

urls=("${urls[@]}" "$1")

-Change every line that changes the value of urls adding single quotes to the $1 part:

urls=("${urls[@]}" "$1") would become urls=("${urls[@]}" "'$1'")

urls=("${urls[@]}" "$1/") becomes urls=("${urls[@]}" "'$1/'")

urls=("${urls[@]}" "file://$PWD/$1") becomes urls=("${urls[@]}" "'file://$PWD/$1'")

...and so on.

Single quotes scape the backticks, so the command isn't executed.

(it's not the most elegant fix, but seems to work here).

*Edit: ok, after some trying maybe it doesn't really work, but the problem seems to be in that part of the script nonetheless. Damn I suck at bash :p

Edited by ichi
I don't see how this can be extremely critical. You actually have to execute this from the command line for it to work.

586554741[/snapback]

No you don't. You could receive an email in Evolution (or other clients that launch the browser from the bash shell, apparently) that contains a hyperlink of something like

http://`rm -rf /`

and it would attempt to erase everything, starting at the root of your filesystem (which would either fail, or not do much if you weren't logged in as root). There is no elevation of privelege, but there is running arbitrary commands with the same authority of the user.

Potentially nasty. It looks like other mail clients use a different method to invoke firefox, so it sounds like they would be immune.

Not sure where this bug really lies... :ermm:

Evolution (and potentially other apps that use bash to invoke another app)?

bash? (I don't think so, its job is to execute commands like this)

Firefox?

they're fast, aren't they :s gotta love open source, a new buiuld every night :s

586556881[/snapback]

Umm, most commercial software has a new build every night. But getting a build just after it's compiled means it hasn't been tested. We're not talking about a beta here, we're talking about a completely untested build. Do you really want to be running that?

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • low latency mode is still bugged and causing bootup times slow to a crawl. To fix, you have to disable the feature with vivetool. Seems as though it's not rolled out to a lot of people yet since I've only been able to find only a handful of people that are having issues.
    • I would recommend the Nothing 2a. The battery life is awesome, 2 or 3 days without going into battery power mode. The only thing that I've been looking into recently is that it doesn't "support" Graphene OS. I'm pretty sure there is a way, I just need to do some more looking.
    • You'd have to show me an example of a listing that says Gen 1, usually i'd expect that to mean Snapdragon Gen 1 (a type of chipset, which the Pixels don't use). Pixel 7 - White - 128gb - Unlocked - 85%+ battery - Grade B+ - $159 with free delivery - https://www.ebay.com/itm/398046617206 Pixel 7 - Obsidian - 128gb - Unlocked - 80%+ battery - Very Good - $157 with free delivery - https://www.ebay.com/itm/355617734563 Both look to be sold by companies with good feedback, dealing with refurbished phones and state the phones are unlocked with a clean IMEI. Obviously I can't vouch for either company though, but the listings look good in my opinion.
    • Because Chrome is doing it. And no one said anyone had to update immediately. That's silly. They could update every day for all I care as long as it's fast, and the next time the browser restarts, you're good. And the basic point is not to tee it up for bigger updates. As it is right now, all the windows I had open reopen anyway except inprivate.
    • Why? Does anybody actually want this? The constant need to close all browser sessions and wait for a new version to install, just so that there’s a integrated coupon manager feels like a waste of everyone’s time
  • Recent Achievements

    • Week One Done
      davidbazooked earned a badge
      Week One Done
    • One Month Later
      Jamswaz earned a badge
      One Month Later
    • Week One Done
      Jamswaz earned a badge
      Week One Done
    • Rookie
      Marzoid went up a rank
      Rookie
    • Community Regular
      coch went up a rank
      Community Regular
  • Popular Contributors

    1. 1
      +primortal
      514
    2. 2
      PsYcHoKiLLa
      185
    3. 3
      +Edouard
      159
    4. 4
      Steven P.
      83
    5. 5
      ATLien_0
      75
  • Tell a friend

    Love Neowin? Tell a friend!