Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Critical Security Hole in Linux Wi-Fi

Posted by CmdrTaco on Sun Apr 15, 2007 10:34 AM
from the nobody's-perfect dept.
thisispurefud writes "A flaw has been found in a major Linux Wi-Fi driver that can allow an attacker to run malicious code and take control of a laptop, even when it is not on a Wi-Fi network."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • patched already (Score:4, Insightful)

    by yagu (721525) * <.yayagu. .at. .gmail.com.> on Sunday April 15 2007, @10:36AM (#18741577) Journal

    So here is a Linux driver problem, a patch is available, though not widely dispersed. The news here is that even in a largely neglected (though it shouldn't be) slice of the Open Source technology, specifically the deadly difficult wi-fi landscape, bugs are found and fixed right away (at least that's the gist of part of the article).

    I'm more afraid of the neglected patches MSFT deems behind closed doors as not important enough to reveal to the public. How many zero-day exploits is MSFT discussing behind those closed doors right now, and what are they deciding about the fate of security to my machines?

    I know I'm spinning here, but I don't find it much of a stretch to interpret this as good PR for the Linux world -- they find problems, they fix them.

    (It doesn't seem to fix the other problem... I'm so sad and tired of trying to get laptops running linux reliably with wi-fi, I barely even bother messing with it anymore... If I want wireless linux on a laptop, I'm doing via Vmware's bridge. It shouldn't be like this.)

    • Re: (Score:3, Informative)

      Wireless support was one of my main requirements when picking my newest laptop. Good support for Atheros cards and as we know, they get patched quickly when flaws are found.
      • Re:patched already (Score:5, Insightful)

        by el americano (799629) on Sunday April 15 2007, @01:52PM (#18743113) Homepage
        Patched quickly, yes, but if the patched driver was released Dec. 7, 2006 then the news that "a flaw was found", is even older than that. On top of that I didn't see mention of an exploit, so the article is a little sensational, but for some reason wireless seems to do that to journalists.

    • Re: (Score:2, Informative)

      While I echo your congratulations on a good response to this bug, I should point out that the driver in question is MadWifi; it's mostly closed source.
      • Re:patched already (Score:4, Informative)

        by QuietLagoon (813062) on Sunday April 15 2007, @10:58AM (#18741723)
        MadWiFi source code can be found here [madwifi.org].

        The module in question is found here [madwifi.org]. (slow to load)

        • Re:patched already (Score:5, Informative)

          by FauxPasIII (75900) on Sunday April 15 2007, @12:17PM (#18742389)
          > MadWiFi source code can be found here.

          Or rather, a small open-source Linux compatibility shim around the actual, binary only driver.

          Look further into that link you pasted:

          http://madwifi.org/browser/trunk/hal/public [madwifi.org]

          Those .uu files are binary objects stored as text, and they make up the majority of the driver. This same binary driver is also used by some of the BSDs, with a different open-source shim.

          > The module in question is found here. (slow to load)

          Ah, so the flaw is in the open source shim part. Fooey. =/

          As an aside, and as I suspect you might already know, there is an effort to replace the binary-only part of that driver with Free software, and the Madwifi people have cooperated as much as they're able. They even host the development in their own repository:

          http://madwifi.org/browser/branches/madwifi-old-op enhal [madwifi.org]

          Cheers!
          • Re: (Score:3, Informative)

            The HAL is hardly the majority of the driver. The reasons for having the HAL are mostly regulatory, and they are not going away. We should be grateful that most of the Atheros cards don't have firmware, so the extent of the reverse engineering is the host-based HAL blob instead of some totally proprietary microcontroller architecture and RTOS. The bad news is, miniPCI is dying, and the industry is moving to USB modules, which unfortunately all use firmware-driven microcontrollers. Two examples I know ar
          • Re: (Score:3, Interesting)

            a small open-source Linux compatibility shim around the actual, binary only driver.

            So the binary HAL layer is less than half of my driver and doesn't include frame parsing and generation or rate control, yet you'd like to call it a small compatibility shim? I'd say the driver is mostly open source.

            As for the effort to reverse engineer the HAL, I think the chip versions are revised too quickly for that to be widely successful. Seems like a lot of work for little return.

            • Re: (Score:3, Interesting)

              > So the binary HAL layer is less than half of my driver


              root@Callooh ~ =) # lsmod | grep ^ath
              ath_rate_sample 11776 1
              ath_pci 87456 0
              ath_hal 189584 3 ath_rate_sample,ath_pci
              root@Callooh ~ =) #


              -shrug- No disrespect. I like, use and recommend to others your driver. It's by far the most complete of the many wireless ethernet drivers I've used with Linux.

              Granted, when there's a fully free-software driver that will run my card, even if it isn't as complete, I'll be swit
    • by Vellmont (569020) on Sunday April 15 2007, @11:07AM (#18741797)
      It's interesting that people start talking about Microsoft right away in reaction to this hole, as if the only thing that matters here is how this flaw relates to Microsoft.

      What I see is more the horrible state of software security. A security model that relies on all the writers of driver code in your computer to do their job right is a poor security model.


      I know I'm spinning here, but I don't find it much of a stretch to interpret this as good PR for the Linux world -- they find problems, they fix them.

      Great.. I guess I'd rather have the Linux World where there aren't any serious problems to begin with. The larger picture here is that computer security kinda sucks, not that Microsoft is better/worse at it than Linux is.

      I'm so sad and tired of trying to get laptops running linux reliably with wi-fi, I barely even bother messing with it anymore

      Huh. I've had very good luck recently with Ubuntu. The built in wifi in my laptop worked out of the box with Ubuntu, and two other cards I own worked as well.

      It hasn't always been like this of course. A couple years ago WiFi support was extremely lacking.
      • by FooBarWidget (556006) on Sunday April 15 2007, @11:46AM (#18742109)
        I think the fact that computer security sucks implies that one of these is true:
        1. It just isn't possible to make software ultra-secure and free of vulnerabilities. I.e. you cannot expect *any* piece to be 100% secure, ever.
        2. It is possible, but the costs of making software ultra-secure is so high that it's not worth it. Customers would rather pay a lower price for a slightly less secure system than a much larger price for a 100% secure system.
        • Re: (Score:3, Insightful)

          I suspect the latter is the case - but that suspicion is based mainly on computer science theory (which amongst other things holds that it's quite possible to mathematically verify that a function will behave as expected under all circumstances).

          In the real world, there are just too many variables, both in software and hardware - OSs and hardware are much more complicated than they were 20 years ago - for that to be practical unless you're prepared to sacrifice a lot of functionality (ie. use a platform tha
        • 3. C/C++ make it really easy to screw up.

      • The biggest problem with this kind of thing is not the operating system security model, it's the hardware. A device in most consumer machines can issue DMA requests that allow it to read or write arbitrary addresses in physical memory. No matter how isolated the driver is, the device itself can still poke at your memory. This can be addressed by adding an IOMMU, which allows the kernel to assign a virtual address range to the device, and prevents it from accessing random areas of memory. Once you have this, it's possible to isolate drivers more and impose a good security model on them, but without it, anything you do is a bit pointless.

        The good news is that the rise of virtualisation means that IOMMUs are going to become a lot more common in the next few years.

      • What I see is more the horrible state of software security. A security model that relies on all the writers of driver code in your computer to do their job right is a poor security model.

        You're right. Unfortunately with the current design of PC hardware it's difficult to provide protection from poorly written drivers. For example, it's very common for drivers to be able to (a) initiate DMA transfers to/from any part of physical memory, and (b) lock the PCI bus by messing with the bus arbitration. You can do things like having an exokernel [wikipedia.org] -- small trusted multiplexers go in the kernel and the larger parts of your drivers sit (untrusted) in userspace, but performance generally sucks. Some hardware (eg. graphics cards) makes it hard even to do this.

        Luckily virtualisation is driving better solutions, and they're coming to a PC near you soon (in fact, they've already come to the PCs I'm using daily, but those are test articles). Primarily with virtualisation we want to be able to hand off devices to untrusted guest operating systems. For example give each guest its own physical network card. That won't work too well if guests can stomp on each others memory using DMA transfers. The new hardware actually has hardware support to stop the guests doing bad things.

        Look at Intel's VT-d [intel.com] for example.

        Rich.

    • Re:patched already (Score:4, Insightful)

      by delire (809063) on Sunday April 15 2007, @12:17PM (#18742387)
      Wireless support on Linux is great if you simply do a little research and don't pick a card that doesn't work. [leenooks.com] You can't take a Linux unfriendly wireless adapter to water and make it drink, so don't waste your time.

      Wireless works out-of-the-box (or soon after) - with a recent distribution of Linux - on most laptops these days.

      • Re:Mod parent down (Score:4, Insightful)

        by j35ter (895427) on Sunday April 15 2007, @12:04PM (#18742265)
        Sorry chap, people start bashing on linux (and its users) as soon as any kind of vulnerability is found.
        In this case, the vulnerability is in a 3rd party driver and not in the kernel itself. Nevertheless the not-so-techie reader just reads "Linux vulnerability".

        Btw. Dont forget that the public is used to hear about Windows vulnerabilities, they dont notice them anymore.
            • Re: (Score:3, Insightful)

              It doesn't seem like a campaign to me. From my vantage point (obsessively neutral about tools) it looks like insecurity masquerading as a big community hug and wank session.

              People who are secure in the choices they've made don't need to trumpet them all over the place. In particular, they don't segue any possible (tenuous) link into a rant about the superiority of their choice.
  • Already been patched, read TFA. My laptop has been patched for a while already, so have most people that actually pay attention to security posts.
      • Fixed! (Score:5, Insightful)

        by tjwhaynes (114792) on Sunday April 15 2007, @11:33AM (#18742011)

        My concern is that you are right - "so have most people that actually pay attention to security posts." The strong benefit of Linux vis-a-vis MSFT (and its not price) is that as an open system you have an nearly unlimited pool of the best computer code writing minds constantly updating and improving upon one another's kernel code around the world.But, if when errors are uncovered and corrections made, patches are only known to that pool of people then mass users will be exposed to significant security risk. The average Joe running Linux will suffer and that hurts the entire community in both reputation and user adoption rates.

        You are overlooking the way that most Joe Linux users get their updates - automatically. When security flaws are found and patches are delivered, you can guarantee that the people who package that software at Redhat, Ubuntu, Debian and other major distributions are aware of the update. Those security patches will be tested and rolled out into the main update repositories, probably within 24 hours to all the mirrors worldwide. The automatic update daemon on Joe User's modern Linux distro will be downloading the update within the next 24 hours or sooner. From security patch being announced to patched home computer in 48 hours in the worst-case scenario.

        One of the nicest things about the distro's automatic updates is that this applies to ALL packages in the distro. I don't need to worry about Apache needing it's own updater. So no - the average Joe running Linux does not suffer - he gets informed about the update or even has it applied without manual intervention depending on the settings. Joe benefits and so does the community who recognise that fixing security flaws promptly is key.

        Cheers,
        Toby Haynes

        • Re:Fixed! -not! (Score:5, Interesting)

          by quixote9 (999874) on Sunday April 15 2007, @12:21PM (#18742409) Homepage
          Um, "Joe Linux" here, chiming in. I run Fedora, which was pre-installed on oddball hardware. If Fedora has automatic updates like Ubuntu, and if they just work, I sure as hell haven't heard about them. The Fedora repository is about 10% of the way to useful. 15%, when I'm feeling charitable. I'm on Core 3 because I haven't found a distro that can deal with my system, and, since I'm a biology geek not a computer geek, I have no idea what to do or the time to spend finding out.

          It gets worse. I don't even know if I'm running a madwifi driver or not. I looked at the running processes, but there's nothing obvious there. I don't know if madwifi is called something else in the process list. I do know I have a Atheros chip.

          The point I'm trying to make is more than just displaying ignorance. The point is that it may be hard for those of you who are close to the subject to realize just how opaque it is to those of us who aren't. If you're in the know, share their knowledge. It's kind of frustrating, from my perspective, to hear, "It's all automatic, and if it's not, you're just too hopeless to deal with."

          (All that said, you're quite right that when updates are applied automatically and effectively, both the clueless and the clued benefit. That's why I'm getting my next system with Ubuntu on it!)
          • Re:Fixed! -not! (Score:5, Informative)

            by LibertarianWackJob (881478) on Sunday April 15 2007, @01:14PM (#18742831) Homepage
            Hi "Joe"
            You won't be getting any updates for FC3 since the Fedora Project has dropped support for that. If you like the Fedora distribution you can go with FC6 or wait for May 24 when FC7 is due to be released. Otherwise, Ubuntu is a fine distribution.

            Try this:

            su -

            crontab -e

            # cron for root
            # update system at 4AM daily
            0 4 * * * /usr/bin/yum update
  • What if you ifdown the wireless interface when not in use, can this prevent an exploit? It seems like it would unload the interface, but the kernel drivers would still be present. Does the kernel still monitor the wireless signals regardless of the ifup status?

    I'm lucky my laptop has a switch on the side, when switched OFF wireless networking seems to be disabled. It seems to be a hardware disconnect for the antenna.
  • Thanks for the useless link. Anyone with a link to an actual advisory, LKML post, lwn, etc that might have some actual information in it?
    • madwifi links. (Score:5, Informative)

      by Erris (531066) on Sunday April 15 2007, @11:45AM (#18742095) Homepage Journal

      The madwifi howto is here [madwifi.org]. It seems that you can type, "lsmod | grep ath_pci" to find out if you are running the supposedly exploited module. My simple Etch system does not have this or wlanconfig tools by default, though those tools look very nice and I'm sure this little problem will be fixed quickly.

      I have to agree with you about the uselessness of the PC World article. Besides not having any useful information, it's filled with FUD about free software wifi and confused "popularity argument" babble. In short it's more of a, "everyone else has these problems too, so Windoze away," pacifier than it is a news article.

      • Re: (Score:3, Interesting)

        you can type, "lsmod | grep ath_pci" to find out if you are running the supposedly exploited module

        You can also type "modinfo ath_pci | grep version" to find which version you have.

        The patched driver is 0.9.2.1 [madwifi.org] or newer.

  • by dekkerdreyer (1007957) <dekkerdreyerNO@SPAMgmail.com> on Sunday April 15 2007, @10:47AM (#18741651)
    Luckily this hack isn't for the ordinary Linux user. The hack requires WPA encryption to be activated. As anyone who uses Linux knows, WPA requires recompiling the kernel, compiling wireless tools, compiling wpasupplicant, recompiling both when you find that the default configuration for wpasupplicant is to not use WPA (wtf?), and finally modifying a handful of cryptic configuration files. Once that's done, WPA is still not likely to work with a particular kernel, hardware, and wireless card combination.

    Once again, Linux is safe from such a common attack because only seven people have successfully set up WPA. If this had been a Windows flaw, where every machine natively understands WPA and no work at the command prompt is needed, this would be disastrous.

    This shows that Linux has been taking the right stand. By making the machine difficult to get running, it's unlikely that the machine will be able to connect to anything and become infected. Windows made the mistake of making the machine easy to use, allowing for simply network connection and ease of ownership (OWN3D).

    • by LinuxGeek (6139) * <linuxgeek@NOspAM.djand.com> on Sunday April 15 2007, @11:03AM (#18741763)
      Humorous, but if someone wants a quick and painless route, check out Ubuntu. I running 7.04 beta on my laptop and wifi works well with my two very different APs in WPA(psk) mode. Installed and working, no tweaking, no manual compiling, no config file fiddling required. After running Linux for 12+ years I am quite happy with the state of Ubuntu.
  • Tag.. (Score:5, Funny)

    by Anonymous Coward on Sunday April 15 2007, @10:48AM (#18741661)
    DefectiveByDesign? Oh wait ... wrong OS.
  • by QuietLagoon (813062) on Sunday April 15 2007, @10:51AM (#18741683)
    Here [mitre.org] is a reference to a more informative report.
  • by Skiron (735617) on Sunday April 15 2007, @10:59AM (#18741731) Homepage
    ... this was fixed 4 months ago?

    http://madwifi.org/changeset/1842 [madwifi.org]
  • by Anonymous Coward on Sunday April 15 2007, @11:38AM (#18742059)
    Why is a tagging keyword 'haha'?
  • Here's an idea: (Score:3, Interesting)

    by The Cisco Kid (31490) * on Sunday April 15 2007, @12:13PM (#18742343)
    Get rid of wifi cards (PCI as well as PCMCIA), and instead implement the wifi 'client' side with an ETHERNET jack to connect .. well, anything that has or can have an ethernet port. Have a 'router' build in that is accesible and configurable via HTTP and/or telnet. Include a 'bridge mode' where, once configured, the router steps out of the way for cases where you are on a known network where you trust its security, or for 'public' untrusted networks you leave the build-in router enabled, isolating you from unexpected inbound connections.

    Then, you dont need specific 'drivers' for wifi hardware (you just need to support ethernet)
  • by Durzel (137902) on Sunday April 15 2007, @01:06PM (#18742773) Homepage
    If this was a Microsoft flaw there wouldn't be any talk of "good PR" in releasing a patch quickly, or any other positive angle. There would be reply after reply about Microsofts' code being bloated, the evils of closed-source, monopolistic tactics, that one time when Bill Gates stood on a cats tail by mistake, etc. Linux isn't the only golden boy, Firefox (vs IE), Google (vs big nasty corporations), etc get just as much ridiculously transparent partisan treatment.

    Vulnerabilities, particularly serious ones, are never good news. At the very least it would cost businesses who have deployed Linux engineer time in fixing (applying patch(es)) the problem, it generates uncertainty in the market - it creates the potential for business managers who just scan the IT news pages to say "didn't Linux have that serious problem not long ago?". This much is true of any OS, particularly one that businesses need to rely on.

    I'm a firm believer in open-source, and I use both Windows and Linux in equal measure both at work and at home. I don't however believe fundamentally that the fact Windows and IE are closed-source automatically make them "poorly written". As has already been remarked a lot of this comes down to usage statistics... with a 90%+ market share you can guarantee that every hacker out there is trying to find fault in every single DLL that Windows ships with. As Linux gains more traction in the desktop & server markets as time goes on you can be sure that there will be most vulnerabilities like this being found. Programmers make mistakes, and there is no such thing as bug-free software.

    I really wish Slashdot could dispense with the hidden agendas, partisan attitudes and blatent fanboyism and not sweep serious vulnerabilities like this under the carpet as if they aren't a big deal. Dimissing them as trivial is - if anything - more damaging than giving them the proper attention.
  • What!? (Score:5, Funny)

    by jav1231 (539129) on Sunday April 15 2007, @02:23PM (#18743343)
    Wait! Someone got WiFi to work in Linux!?
    Okay, easy...just saying this is one area that's always been behind in Linux.
    • Re:In other news.. (Score:5, Informative)

      by TheRealMindChild (743925) on Sunday April 15 2007, @11:57AM (#18742205) Homepage Journal
      they all contains buffer overflows

      Actually, this kind of crap goes away when you stop using NULL terminated strings and put in size checks.

      • Start using a BSTR or std::string or christ, even CString.
      • If you're going to use a char * as a string, stop using strcpy/strcat/sprintf/strfindthelawngnome and start using strncpy/strncat/snprintf/strfoundthelawngnome
      • If you have to pass a char * as a parameter of some function, also add a parameter that indicates the size of the memory (EX: 'bool IsStringSexy(char *mystring, ULONG mystringlen)')
      • Don't rely that a setting read from some arbitrary place (registry, file) is undeniably correct to laying out structures of memory [LOOKING AT YOU IE AND FIREFOX AND WORD AND EVERY OTHER APP THAT CRASHED DUE TO A MALFORMED DOCUMENT]
      • Re:In other news.. (Score:4, Insightful)

        by Aoreias (721149) on Sunday April 15 2007, @03:20PM (#18743745)

        Actually, this kind of crap goes away when you stop using NULL terminated strings and put in size checks.

        It's a much more complex problem than simply using 'safe' functions. People don't always put the correct size into the size field, and there are entire classes of exploits, e.g. format string vulnerabilities [wikipedia.org], that don't use the traditional buffer overflow mechanism at all.

        I've heard that the BSD folks have a saying that a bug is just an attack nobody has the intelligence to turn into an exploit yet. I take it you've never written code that crashes?

        • Re:In other news.. (Score:4, Insightful)

          by alphamugwump (918799) on Sunday April 15 2007, @02:53PM (#18743531)
          I see this "X language is magically secure" stuff all the time. No, it isn't. The fact that your language is higher-level does not make it more secure. Look at PHP. It's horrible, far worse than C.

          Or perhaps you prefer Java, and think that running your code in a VM is a silver bullet. Think again. If you want that code to actually do anything, you're going to have to give it access to the outside world. Your web app can still let people do things they shouldn't. Security is not just about buffer overflows and SQL injection; it's about anything that could let someone get access they shouldn't have. Which can happen from plain old bad logic.

          Admittedly, it is easy to make mistakes with C. But C is pretty much the only thing to write a kernel in. In a device driver, you have to mess around with real memory, and real IO, and that sort of thing. More importantly, C is old enough so that its common security mistakes are already known. You'd have a much harder time with some random language.

          Basically, a "secure" language is not one that prevents you from doing things you shouldn't. What you want is a language that makes it easier to write secure code than to write insecure code.
      • Re: (Score:3, Informative)

        Perhaps you're thinking of OpenBSD's Theo de Raadt? He's a confirmed git. Smart and dedicated, but definitely lacking interpersonal skills.
    • Re: (Score:3, Informative)

      Actually, I had more trouble getting my wireless card to work in Windows XP than Ubuntu 5.10. Turns out not every wireless card supports Windows' wifi config tool, and mine was one of them. For some reason, nobody seems to tell hardware vendors that their Value-add software feels more like value subtract.

      Of course, I did have the foresight to ask my friends about what works on Linux, which I'm sure helped tremendously. However the laptop I bought didn't really let me choose a wifi card, and it still works w
    • Ummmm, no. (Score:3, Informative)

      First off, I'm posting this from Ubuntu (Feisty Fawn).

      But it's not ready for primetime just because of the average user.

      Okay, what is it about the "average user" that makes Linux not ready for prime time?

      Windows has a tough enough time with security because of the user (let's face it, 90% of problems are the user's fault).

      Okay, now you're talking about Windows. And I'll disagree about 90% of Microsoft's security problems being the fault of the users. The default install of a system should be secure enough W

    • Re: (Score:3, Informative)

      The number of security advisories has very little bearing on OS's tho...
      An issue with madwifi is an issue which can affect linux, but is not a bug in linux per se (since its not in the default kernel).
      It may be a bug with a particular distribution of linux, if that distribution were to include these drivers.

      Similarly, a bug in firefox or apache could also affect windows users if they chose to install it, but it won't be flagged as a windows bug because it's not present by default. Conversely, it will be fla