LWN: Comments on "Die-hard bug bytes Linux kernel for second time (Register)" https://lwn.net/Articles/405927/ This is a special feed containing comments posted to the individual LWN article titled "Die-hard bug bytes Linux kernel for second time (Register)". en-us Sat, 20 Sep 2025 20:17:45 +0000 Sat, 20 Sep 2025 20:17:45 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net How many such apps can you actually name? https://lwn.net/Articles/406866/ https://lwn.net/Articles/406866/ nix <div class="FormattedComment"> Hang on. "This technical problem is handled by making it illegal" is not a valid argument. People *do* link glibc statically, so a 'solution' that breaks that will break existing code. (In practice, this solution would never have any hope of being implemented anyway, because it would represent a gigantic kernel ABI break, which is one thing the kernel hackers very much dislike.)<br> </div> Fri, 24 Sep 2010 11:32:15 +0000 Regression testing? https://lwn.net/Articles/406740/ https://lwn.net/Articles/406740/ patrick_g <div class="FormattedComment"> Well I know at least two projects : <a href="http://ltp.sourceforge.net/">http://ltp.sourceforge.net/</a> and <a href="http://autotest.kernel.org/">http://autotest.kernel.org/</a><br> <p> Perhaps it's a good subject for a future LWN article ?<br> </div> Thu, 23 Sep 2010 15:52:47 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/406680/ https://lwn.net/Articles/406680/ tialaramex <div class="FormattedComment"> There are two bugs.<br> <p> People keep insisting on talking about them as if they were one bug, e.g. proposing a workaround for bug A, then reporting it "doesn't work" because they tested an exploit for the bug B.<br> <p> I don't really know what to say about that except, obviously you wouldn't want to employ any of these people in a capacity that required them to remember and distinguish things, so say, waiting at tables is right out.<br> </div> Thu, 23 Sep 2010 10:22:17 +0000 Workaround may not work? https://lwn.net/Articles/406679/ https://lwn.net/Articles/406679/ tialaramex <div class="FormattedComment"> That's the other bug.<br> </div> Thu, 23 Sep 2010 10:15:09 +0000 Regression testing? https://lwn.net/Articles/406659/ https://lwn.net/Articles/406659/ walles <div class="FormattedComment"> Does anybody know what kind of regression testing is performed on the kernel? Are regression tests written? Are they run?<br> <p> This sounds like a good example of something that should have been caught automatically the second time it was introduced.<br> </div> Thu, 23 Sep 2010 08:26:37 +0000 How many such apps can you actually name? https://lwn.net/Articles/406303/ https://lwn.net/Articles/406303/ khim Sorry, but you are <b>totally</b> wrong. <blockquote><font class="QuotedText">Sure, static linking is horrible, but people *do* use it, so we have to cope...</font></blockquote> <p><a href="http://www.gnu.org/licenses/lgpl-2.1.html">Already handled</a>. Please read paragraph 6 and recall that FSF is <b>very</b> serious about copyright enforcement.</p> <p>Very, very, <b>very</b> few proprietary programs are linking GLibC statically. Sure they can bundle particular version of GLibC they like, but usually it's linked as shared library to make possible to use 6b option.</p> <p>So, no, in practice static linking is not a problem at all: even if GLibC is linked statically you <b>must</b> have a way to replace it.</p> Mon, 20 Sep 2010 21:20:12 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/406268/ https://lwn.net/Articles/406268/ dv1m <div class="FormattedComment"> Confused by the CVE ID numbers:<br> <p> I thought this was about CVE-2010-3081, but this line is confusing:<br> <p> "The Register reports on CVE-2010-3301, a local root vulnerability which has...."<br> <p> And then user dowdle also used CVE-2010-3301.<br> </div> Mon, 20 Sep 2010 17:53:53 +0000 "any 64-bit installation"? https://lwn.net/Articles/406176/ https://lwn.net/Articles/406176/ dwmw2 <div class="FormattedComment"> Only x86_64, surely? This isn't a generic bug in the 32-bit compat layer on 64-bit kernels; it's in the low-level arch-specific syscall code.<br> <p> The quote seems a little misleading. Although perhaps we could argue that pretty much every 64-bit Linux installation *is* x86_64 :)<br> </div> Mon, 20 Sep 2010 11:13:17 +0000 Workaround may not work? https://lwn.net/Articles/406170/ https://lwn.net/Articles/406170/ vlima The <a href="http://sota.gen.nz/compat2/robert_you_suck.c">robert_you_suck.c</a> exploit found <a href="http://sota.gen.nz/compat2/">here</a> still works as far as I can tell. Mon, 20 Sep 2010 08:41:53 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/406129/ https://lwn.net/Articles/406129/ nix <div class="FormattedComment"> I know my memory is appalling. That's why I spend half my time guarding against forgetfulness-inspired mistakes. It doesn't stop all of them, though, as this shows.<br> </div> Sun, 19 Sep 2010 14:47:20 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/406128/ https://lwn.net/Articles/406128/ maney <i>Oh yes, it got cut in two and renamed, didn't it?</i> <p> Demonstrating how easily even a careful, master LWN commentor can let a small mistake in. ;-) Sun, 19 Sep 2010 14:23:33 +0000 user mode for 32-bit syscall emulation https://lwn.net/Articles/406127/ https://lwn.net/Articles/406127/ nix <div class="FormattedComment"> Plus, of course, a lot of apps (particularly proprietary ones and games) are statically linked to glibc, so from the POV of the OS 'do not use' glibc, at least not the magic future one here being discussed. Sure, static linking is horrible, but people *do* use it, so we have to cope...<br> </div> Sun, 19 Sep 2010 13:20:31 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/406123/ https://lwn.net/Articles/406123/ nix <div class="FormattedComment"> Oh yes, it got cut in two and renamed, didn't it?<br> </div> Sun, 19 Sep 2010 13:05:12 +0000 This discussion is fast becoming moot anyway... https://lwn.net/Articles/406122/ https://lwn.net/Articles/406122/ khim <blockquote><font class="QuotedText">But I don't see why you'd bother to go through all this trouble on x86-64 to run 32bit binaries because it already has excellent support.</font></blockquote> <p>Well, if the capability is full of security holes it's not "excellent" by any stretch of imagination. On the other hand I think in few more years we'll be able to just disabled 32bit suppport (jut like iBCS was hot few years ago, but mostly is forgotten and broken today so will 32bit ABI) I don't see the need to introduce some crazy glibc-based emulation scheme <b>now</b>.</p> <blockquote><font class="QuotedText">Just because the Linux sucks at security sometimes does not mean it's not a good approach.</font></blockquote> <p>Funny: when Flash death is wished for it's usually because it's full of security holes - and this is certainly good enough reason, but when 32bit emulation is concerned is not good enough reson? Sorry, but no. As this incidents shows current approach is really bad, but the trouble is: any replacement will need lots of work and will probably be too late to be actually usable. So we'll have this messy piece of code in our kernels for few more years...</p> Sun, 19 Sep 2010 13:03:24 +0000 Workaround may not work? https://lwn.net/Articles/406056/ https://lwn.net/Articles/406056/ tialaramex <div class="FormattedComment"> There is now a follow-up post from the same user in which they say they were testing some other exploit for some other bug.<br> </div> Sat, 18 Sep 2010 16:39:15 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/406049/ https://lwn.net/Articles/406049/ jake <div class="FormattedComment"> <font class="QuotedText">&gt; part of the point of the uprobes patches that the kernel hackers have </font><br> <font class="QuotedText">&gt; been refusing to allow in for so long</font><br> <p> a minor nit, that's "utrace", not (the related but separate) uprobes, i believe. <br> <p> jake<br> </div> Sat, 18 Sep 2010 15:21:06 +0000 user mode for 32-bit syscall emulation https://lwn.net/Articles/406042/ https://lwn.net/Articles/406042/ jreiser <i>But programs which do not use glibc at all should not be that common</i> &#160;&#160;Program generators already have been used by hundreds of users to write thousands of programs that do not use glibc, and those programs have been distributed. Removing the ability for a 64-bit Linux kernel to handle a 32-bit system call would be a gigantic abandonment of the Linux ABI. Sat, 18 Sep 2010 14:38:53 +0000 user mode for 32-bit syscall emulation https://lwn.net/Articles/406014/ https://lwn.net/Articles/406014/ drag <div class="FormattedComment"> I know that it's possible to run foreign binaries on your system through virtualization.<br> <p> For example by using the various qemu-blah architectures it's possible to setup a chroot in your Debian system to execute programs and such. It's a nice feature when your doing cross architecture development.<br> <p> But I don't see why you'd bother to go through all this trouble on x86-64 to run 32bit binaries because it already has excellent support. Just because the Linux sucks at security sometimes does not mean it's not a good approach.<br> </div> Sat, 18 Sep 2010 06:08:07 +0000 RHEL's workaround https://lwn.net/Articles/406004/ https://lwn.net/Articles/406004/ drag <div class="FormattedComment"> I suppose so. But I have not seen any negative impact in the past from it and I've been mixing 32bit userlands with 64bit kernels for ages; except from the security perspective.<br> </div> Fri, 17 Sep 2010 23:31:27 +0000 user mode for 32-bit syscall emulation https://lwn.net/Articles/406001/ https://lwn.net/Articles/406001/ cesarb <div class="FormattedComment"> What I proposed depends on the 32-bit code being able to somehow do 64-bit syscalls, instead of doing a 32-bit syscall to be translated by the kernel (and in fact the kernel would not have any 32-bit syscall entry point at all).<br> <p> If you are generating your own code which does not use the C library and calls the kernel directly, you could call the 64-bit syscalls directly like glibc would do. But programs which do not use glibc at all should not be that common, and initializing glibc would install the hook to intercept attempts at 32-bit system calls (which would work somewhat like a signal handler).<br> <p> Yes, this idea implies always having the 32&lt;-&gt;64 compat layer within glibc even on pure 32-bit systems (after all, one use case for that compat code is to run a pure 32-bit distribution with a 64-bit kernel).<br> </div> Fri, 17 Sep 2010 22:49:06 +0000 user mode for 32-bit syscall emulation https://lwn.net/Articles/405978/ https://lwn.net/Articles/405978/ jreiser <i>Most well-written programs will do system calls via the C library</i> The number of well-written programs is quite small. &#160;&#160; Perhaps you meant just "most programs". <p><i>for the ones that call into the kernel directly, the kernel could redirect the call back to the C library emulation code</i> &#160;&#160; Where would this C library emulation code reside? One of the reasons for running 32-bit code on a 64-bit machine is to get almost 4GB of usable user address space while using 32-bit pointers. It's already a significant problem that randomized placement of 32-bit VDSO linux-gate.so.1 fragments the address space. (If a process uses more than a few shared libraries then the probability of suffering performance loss due to randomized placement of VDSO is something like 5% to 30%: <a href="https://bugzilla.redhat.com/show_bug.cgi?id=162797#c4">https://bugzilla.redhat.com/show_bug.cgi?id=162797#c4</a>) Having the kernel put another VDSO into the address space [and glibc is a fat one at almost 1.5MB] would be even worse. <p>I care because I write program generators, such that the <i>generated programs</i> make "bare" syscalls without using glibc. The kernel should keep its code out of the user address space. Fri, 17 Sep 2010 21:37:35 +0000 Workaround may not work? https://lwn.net/Articles/405981/ https://lwn.net/Articles/405981/ dowdle <div class="FormattedComment"> According to this comment the workaround doesn't work. Can anyone else verify this?<br> <p> <a href="http://www.h-online.com/open/news/forum/S-workaround-DOES-NOT-PREVENT-EXPLOIT/forum-116020/msg-14370942/read/">http://www.h-online.com/open/news/forum/S-workaround-DOES...</a><br> <p> </div> Fri, 17 Sep 2010 21:07:39 +0000 RHEL's workaround https://lwn.net/Articles/405971/ https://lwn.net/Articles/405971/ jengelh <pre>rpm -qa --qf="%{ARCH}\t%{NAME}\n" | pcregrep '^i.86|-32bit'</pre>since some distros put baselibs into x86_64. Fri, 17 Sep 2010 20:04:11 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/405965/ https://lwn.net/Articles/405965/ nix <div class="FormattedComment"> Notice that this bug was reintroduced by Roland McGrath. Roland is the original author and co-maintainer of glibc, and co-maintainer of the kernel's horrendously arcane ptrace code: if anyone can be said to be a careful programmer and master hacker it's Roland.<br> <p> He's been saying for years that ptrace() is almost unmaintainable: part of the point of the uprobes patches that the kernel hackers have been refusing to allow in for so long was to ditch a lot of this and replace it with something actually maintainable. So Roland can legitimately say 'nyah nyah I told you so' at this point. (But he won't because that would be nasty, and Roland doesn't do nasty.)<br> <p> </div> Fri, 17 Sep 2010 19:42:49 +0000 RHEL's workaround https://lwn.net/Articles/405960/ https://lwn.net/Articles/405960/ dowdle <div class="FormattedComment"> I wasn't saying that by removing 32-bit packages that users can't add their own. I was just thinking that if I didn't have any 32-bit apps on the system that I was using or that the system was using... that turning off the ability to run 32-bit apps as a temporary workaround for the bug shouldn't have much of a negative impact. Does that make good sense to you?<br> </div> Fri, 17 Sep 2010 19:27:19 +0000 RHEL's workaround https://lwn.net/Articles/405957/ https://lwn.net/Articles/405957/ drag <div class="FormattedComment"> Are you sure that actually does anything for you? <br> <p> Does this prevent anybody from copying a 32bit binary from to your machine via "wget <a href="http://blah/exploit">http://blah/exploit</a>" and then executing it? <br> <p> Yeah sure maybe it's missing some critical lib somewhere, but that is not much of a step for a stepper.<br> </div> Fri, 17 Sep 2010 19:20:22 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/405956/ https://lwn.net/Articles/405956/ cesarb <div class="FormattedComment"> Perhaps it would be a good idea to do all this compat handling in userspace, using a specially modified 32-bit glibc. Most well-written programs will do system calls via the C library, and for the ones that call into the kernel directly, the kernel could redirect the call back to the C library emulation code.<br> <p> This way, any bugs on the emulation code would affect only the calling program, not the whole kernel.<br> </div> Fri, 17 Sep 2010 19:19:43 +0000 RHEL's workaround https://lwn.net/Articles/405955/ https://lwn.net/Articles/405955/ dowdle <div class="FormattedComment"> Per that RH link Jon provided there is a workaround... that basically stops 32-bit binaries from being able to run. On almost all of my 64-bit systems I had previously removed all of the 32-bit packages... except for the single glibc.i686 so the fix should work for me.<br> <p> echo ':32bits:M::\x7fELF\x01::/bin/echo:' &gt; /proc/sys/fs/binfmt_misc/register<br> <p> Here's how to find what 32-bit packages you have installed on an rpm-based system... for anyone who was curious:<br> <p> rpm -qa --qf "%{n}.%{arch}\n" | grep -v x86_64 | grep -v none | grep -v noarch<br> <p> That might not be very elegant but it works for me.<br> </div> Fri, 17 Sep 2010 19:14:12 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/405954/ https://lwn.net/Articles/405954/ dowdle <div class="FormattedComment"> See Jon's comment above... and the Debian kernel released today... that includes a fix for CVE-2010-3081 which seems to be the same thing or pretty darn close. So, Debian has updated the kernel.<br> </div> Fri, 17 Sep 2010 18:51:18 +0000 RHEL https://lwn.net/Articles/405953/ https://lwn.net/Articles/405953/ corbet There's a bit of confusion between the vulnerability described in the article and CVE-2010-3081 - at least <i>I</i> have been confused, though that happens frequently. Both were reported by Ben and involve similar mistakes. <a rel="nofollow" href="https://access.redhat.com/kb/docs/DOC-40265">RHEL5 is vulnerable</a> to this other bug, and exploits are in the wild. Fri, 17 Sep 2010 18:49:54 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/405952/ https://lwn.net/Articles/405952/ dowdle <div class="FormattedComment"> Also, it does not appear that Debian is affected either:<br> <a href="http://lists.debian.org/debian-security/2010/09/msg00019.html">http://lists.debian.org/debian-security/2010/09/msg00019....</a><br> </div> Fri, 17 Sep 2010 18:47:07 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/405949/ https://lwn.net/Articles/405949/ error27 Ben Hawkes wrote up the vulnerability on his blog <a href="http://sota.gen.nz/compat1/">page 1</a> and <a href="http://sota.gen.nz/compat2/">page 2</a>. (Really only page 2 is this bug but they're both related and interesting). These bugs were found with a hand audit and so probably that's what we need to do more of. Fri, 17 Sep 2010 18:38:14 +0000 Die-hard bug bytes Linux kernel for second time (Register) https://lwn.net/Articles/405951/ https://lwn.net/Articles/405951/ dowdle <div class="FormattedComment"> Please note that RHEL kernels are reported not affected:<br> <a href="https://www.redhat.com/security/data/cve/CVE-2010-3301.html">https://www.redhat.com/security/data/cve/CVE-2010-3301.html</a><br> </div> Fri, 17 Sep 2010 18:32:49 +0000