CVE-2010-3081 kernel: 64-bit Compatibility Mode Stack Pointer Underflow

Published: 2010-09-19
Last Updated: 2010-09-19 23:25:31 UTC
by Manuel Humberto Santander Pelaez (Version: 1)
4 comment(s)

The Full Disclosure list sponsored by published an exploit regarding the CVE-2010-3081 vulnerability. It is triggered because of a stack pointer underflow regarding the function compat_alloc_user_space() inside arch/x86/include/asm/compat.h. This exploit is in the wild and it is highly recommended to implement the patch located at;a=commit;h=c41d68a513c71e35a14f66d71782d27a79a81ea6.

You might wonder why do I tell you to patch a vulnerability that has been published 12 days ago, right? Two days ago, the operations team of my company noticed a strange behavior on a specific linux system. First thing I did was to review the latest vulnerabilities for the linux distribution installed on the machine and found CVE-2010-3081. Digging a little bit more let me found  an excellent tool made by Ksplice that told me the machine was exposed to the exploit.

Download the tool here: If you want the binary, download it here:

Read the Redhat Bugzilla info associated with CVE-2010-3081 here:

Read about the exploit here:

Read more about the vulnerability description here:

Can't patch right now? Use the following workaround: echo ':32bits:M:0:x7fELFx01::/bin/echo:' > /proc/sys/fs/binfmt_misc/register

-- Manuel Humberto Santander Peláez | | | msantand at isc dot sans dot org

4 comment(s)


Manuel, thanks for the writeup.

First, a disclaimer: I work for Ksplice.

We've got a bit more detail about the exploit detection tool at: <>

As far as the workaround is concerned: it's sufficient to stop the high-profile exploit example that's been circulating out there, but it doesn't actually fix the problem; a fairly straightforward modification to the exploit will allow it to continue working even with that workaround in place.

Additionally, the workaround disables 32-bit ELF support, so you won't be able to run 32-bit programs -- which could be a problem, depending on your environment.

The only ways to fix it are to:
1) Reboot into a patched kernel (but unfortunately, RHEL/CentOS has yet to release one), or;

2) Use Ksplice to hotpatch your kernel, to apply the patch without rebooting.

We have a 30-day free trial at <>, which will let you install that patch. It's at the very least a way of weathering the storm, if nothing else.
wdaher: I've downloaded the binary from Ksplice to check to see if we are vulnerable and I get "cannot execute binary". The permissions on the file are set properly, and I've even tried using sh to run the program but I get the same error. I've tried running it as both root and a regular user.

How do you run the precompiled binary on RHEL/CentOS systems?
Steve: A "cannot execute binary" error probably means that you're running the tool on a 32-bit system. The binary on the website is built as a 64-bit binary, and so doesn't run on 32-bit systems (where aren't vulnerable anyway).
Advisory: RHSA-2010:0704-1

kernel-2.6.18-194.11.4 released that addresses this issue

See for details

Diary Archives