]> err.no Git - linux-2.6/commit
[PATCH] Fix sysctl unregistration oops (CVE-2005-2709)
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 4 Nov 2005 10:18:40 +0000 (10:18 +0000)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 9 Nov 2005 01:57:30 +0000 (17:57 -0800)
commit330d57fb98a916fa8e1363846540dd420e99499a
tree841d5e5eeda46fd95ac03c36964919818a9bc3a6
parent8546df6f357dadf1989ad8da9309c9524fd56cdf
[PATCH] Fix sysctl unregistration oops (CVE-2005-2709)

You could open the /proc/sys/net/ipv4/conf/<if>/<whatever> file, then
wait for interface to go away, try to grab as much memory as possible in
hope to hit the (kfreed) ctl_table.  Then fill it with pointers to your
function.  Then do read from file you've opened and if you are lucky,
you'll get it called as ->proc_handler() in kernel mode.

So this is at least an Oops and possibly more.  It does depend on an
interface going away though, so less of a security risk than it would
otherwise be.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/s390/appldata/appldata_base.c
include/linux/proc_fs.h
include/linux/sysctl.h
kernel/sysctl.c