[PATCH 0/3] CVE-2010-4258
Brad Figg
brad.figg at canonical.com
Mon Feb 28 18:40:52 UTC 2011
Following this email will be 3 patches associated with this CVE. The patches
apply cleanly to Dapper, Hardy and Karmic. Lucid, Maverick and Natty have
already been patched for this issue via upstream stable commits (or regular
upstream commits).
If a user manages to trigger an oops with fs set to KERNEL_DS, fs is not
otherwise reset before do_exit(). do_exit may later (via mm_release in
fork.c) do a put_user to a user-controlled address, potentially allowing
a user to leverage an oops into a controlled write into kernel memory.
This is only triggerable in the presence of another bug, but this
potentially turns a lot of DoS bugs into privilege escalations, so it's
worth fixing. I have proof-of-concept code which uses this bug along
with CVE-2010-3849 to write a zero to an arbitrary kernel address, so
I've tested that this is not theoretical.
A more logical place to put this fix might be when we know an oops has
occurred, before we call do_exit(), but that would involve changing
every architecture, in multiple places.
Let's just stick it in do_exit instead.
Nelson Elhage (1):
do_exit(): make sure that we run with get_fs() == USER_DS
kernel/exit.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
More information about the kernel-team
mailing list