OSDN Git Service

[PATCH] lost fput in 32bit ioctl on x86-64
authorKirill Korotaev <dev@sw.ru>
Fri, 9 Sep 2005 09:26:16 +0000 (13:26 +0400)
committerMarcelo Tosatti <marcelo@dmt.cnet>
Sun, 18 Sep 2005 22:30:07 +0000 (19:30 -0300)
commit04eca707e6e8de6d4542c61081225a984e0e3b3d
tree38b2350e55d069bd079540cc4a104b76dd7b318d
parentcd976b1c20993f50b0281b167b29a8771769fa0f
[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.

Signed-Off-By: Kirill Korotaev <dev@sw.ru>
Signed-Off-By: Maxim Giryaev <gem@sw.ru>
diff --git a/arch/x86_64/ia32/ia32_ioctl.c b/arch/x86_64/ia32/ia32_ioctl.c
arch/x86_64/ia32/ia32_ioctl.c