CVE-2010-0307: Medium severity Linux Linux kernel vulnerability
Description of problem: The problem seams to be located in fs/binfmtelf.c:loadelfbinary(). It calls SETPERSONALITY() prior checking that the ELF interpreter is available. This in turn makes the previously 32 bit process a 64 bit one which would be fine if execve() would succeed. But after the SETPERSONALITY() the openexec() call fails (because it cannot find the interpreter) and execve() almost instantly returns with an error. If you now look at /proc/PID/maps you'll see, that it has the vsyscall page mapped which shouldn't be. But the process is not dead yet, it's still running. By now generating a segmentation fault and in turn trying to generate a core dump the kernel just dies.
Steps to Reproduce: 1. Enable core dumps 2. Start an 32 bit program that tries to execve() an 64 bit program 3. The 64 bit program cannot be started by the kernel because it can't find the interpreter, i.e. execve returns with an error 4. Generate a segmentation fault 5. panic
(EDIT: This is triggerable on 2.6.31.9-174.fc12.x8664).
Upstream commit: http://git.kernel.org/linus/221af7f87b97431e3ee21ce4b0e77d5411cf1549
Discussions: http://marc.info/?t=126466700200002&r=1&w=2
Acknowledgements:
Red Hat would like to thank Mathias Krause for reporting this issue.
Other sources
The loadelfbinary function in fs/binfmtelf.c in the Linux kernel before 2.6.32.8 on the x8664 platform does not ensure that the ELF interpreter is available before a call to the SETPERSONALITY macro, which allows local users to cause a denial of service (system crash) via a 32-bit application that attempts to execute a 64-bit application and then triggers a segmentation fault, as demonstrated by amd64killer, related to the flusholdexec function.
— MITRE
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2010-0307?
CVE-2010-0307 is classified as a high-severity vulnerability due to its impact on system stability and potential exploitation.
How do I fix CVE-2010-0307?
To mitigate CVE-2010-0307, update the Linux kernel to version 2.6.32.9 or later, which addresses this flaw.
Which software versions are affected by CVE-2010-0307?
CVE-2010-0307 affects multiple versions of the Linux kernel, Debian Linux 4.0 and 5.0, and several Ubuntu Linux versions.
Is CVE-2010-0307 exploitable remotely?
CVE-2010-0307 could potentially be exploited remotely, making it crucial to address the vulnerability promptly.
What are the consequences of not patching CVE-2010-0307?
Failing to patch CVE-2010-0307 may lead to privilege escalation, system crashes, or integrity threats on affected systems.