Description
The do_exit function in kernel/exit.c in the Linux kernel before 2.6.36.2 does not properly handle a KERNEL_DS get_fs value, which allows local users to bypass intended access_ok restrictions, overwrite arbitrary kernel memory locations, and gain privileges by leveraging a (1) BUG, (2) NULL pointer dereference, or (3) page fault, as demonstrated by vectors involving the clear_child_tid feature and the splice system call.
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 5.0 | linux-2.6 | 2.6.26-26lenny2 | DSA-2153-1 |
| Debian 5.0 | user-mode-linux | 2.6.26-1um-2+26lenny2 | DSA-2153-1 |
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
Exploit-DB 1
- Linux Kernel 2.6.37 (RedHat / Ubuntu 10.04) - 'Full-Nelson.c' Local Privilege Escalation EDB-15704 · local · Dec 7, 2010 · verified
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Advisories 1
- DSA-2153-1 linux-2.6 - several issues Debian Security (DSA / DLA) · Mar 9, 2026
References
- [oss-security] 20101202 CVE request: kernel: failure to revert address limit override in OOPS error path mailing-list
- 43056 third-party-advisory
- SUSE-SA:2011:004 vendor-advisory
- 42778 third-party-advisory
- [oss-security] 20101202 kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses mailing-list
- http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git%3Ba=commit%3Bh=33dd94ae1ccbfb7bf0fb6c692bc3d1c4269e6177
- 42801 third-party-advisory
- SUSE-SA:2011:002 vendor-advisory
- http://blog.nelhage.com/2010/12/cve-2010-4258-from-dos-to-privesc/
- [oss-security] 20101209 Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses mailing-list
- FEDORA-2010-18983 vendor-advisory
- SUSE-SA:2011:001 vendor-advisory
- 42932 third-party-advisory
- 20101207 Linux kernel exploit mailing-list
- ADV-2011-0124 vdb-entry
- [linux-kernel] 20101201 [PATCH v2] do_exit(): Make sure we run with get_fs() == USER_DS. mailing-list
- SUSE-SA:2011:007 vendor-advisory
- ADV-2010-3321 vdb-entry
- [oss-security] 20101208 Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses mailing-list
- ADV-2011-0298 vdb-entry
- http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.36.2
- [oss-security] 20101209 Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses mailing-list
- SUSE-SA:2011:005 vendor-advisory
- http://code.google.com/p/chromium-os/issues/detail?id=10234
- ADV-2011-0375 vdb-entry
- [linux-kernel] 20101201 Re: [PATCH v2] do_exit(): Make sure we run with get_fs() == USER_DS. mailing-list
- http://googlechromereleases.blogspot.com/2011/01/chrome-os-beta-channel-update.html
- ADV-2011-0012 vdb-entry
- SUSE-SA:2011:008 vendor-advisory
- [oss-security] 20101202 Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses mailing-list
- MDVSA-2011:029 vendor-advisory
- 42745 third-party-advisory
- [oss-security] 20101202 Re: CVE request: kernel: failure to revert address limit override in OOPS error path mailing-list
- [oss-security] 20101208 Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses mailing-list
- 43291 third-party-advisory
- ADV-2011-0213 vdb-entry
- https://bugzilla.redhat.com/show_bug.cgi?id=659567
- [oss-security] 20101208 Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses mailing-list