oss-sec mailing list archives
kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses
From: Nelson Elhage <nelhage () ksplice com>
Date: Thu, 2 Dec 2010 00:21:14 -0500
I've discovered an interesting interaction in the Linux kernel between the clear_child_tid feature of clone(2), and the set_fs() function used internally in the kernel to temporarily disable access_ok() checking of userspace pointers. Under some (not totally uncommon) circumstances, it is possible for a user to leverage this interaction to turn a kernel oops or BUG() into a write of an integer 0 to a user-controlled address in kernel memory. I'm not sure if this merits a CVE or not; It is (as far as I can tell) only a problem in the presence of another security bug, but it potentially makes a large class of bugs significantly more dangerous (DoS -> privesc). Reference: https://lkml.org/lkml/2010/12/1/543 - Nelson
Current thread:
- kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses Nelson Elhage (Dec 02)
- Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses Dan Rosenberg (Dec 02)
- Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses Solar Designer (Dec 07)
- Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses Solar Designer (Dec 07)
- Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses Nelson Elhage (Dec 08)
- Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses Solar Designer (Dec 09)
- Re: kernel: Dangerous interaction between clear_child_tid, set_fs(), and kernel oopses Solar Designer (Dec 09)