]> git.karo-electronics.de Git - karo-tx-linux.git/commit
[PATCH] lost fput in 32bit ioctl on x86-64
authorMaxim Giryaev <gem@sw.ru>
Fri, 9 Sep 2005 20:05:53 +0000 (13:05 -0700)
committerChris Wright <chrisw@osdl.org>
Sat, 17 Sep 2005 01:01:55 +0000 (18:01 -0700)
commit8cd943eb523fa622fec2f8e65e611263babd1249
treefa3905651d2afe196d68291b263a6889fcce0183
parent05dbb1e557b392c8cef3675b4ba6497794ad4124
[PATCH] lost fput in 32bit ioctl on x86-64

This patch adds lost fput in 32bit tiocgdev ioctl on x86-64

I believe this is a security issues, since user can fget() file as
many times as he wants to. So file refcounter can be overlapped and
first fput() will free resources though there will be still structures
pointing to the file, mnt, dentry etc.  Also fput() sets f_dentry and
f_vfsmnt to NULL, so other file users will OOPS.

The oops can be done under files_lock and others, so this is really
exploitable DoS on SMP. Didn't checked it on practice actually.

(chrisw: Update to use fget_light/fput_light)

Signed-Off-By: Kirill Korotaev <dev@sw.ru>
Signed-Off-By: Maxim Giryaev <gem@sw.ru>
Signed-off-by: Chris Wright <chrisw@osdl.org>
arch/x86_64/ia32/ia32_ioctl.c