summary refs log tree commit diff
path: root/security
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2008-10-29 15:42:12 +1100
committerJames Morris <jmorris@namei.org>2008-11-11 22:01:24 +1100
commit637d32dc720897616e8a1a4f9e9609e29d431800 (patch)
tree6b9e500f4f9fa624da3b6bd28d6d161a615a3a63 /security
parente68b75a027bb94066576139ee33676264f867b87 (diff)
downloadlinux-637d32dc720897616e8a1a4f9e9609e29d431800.tar.gz
Capabilities: BUG when an invalid capability is requested
If an invalid (large) capability is requested the capabilities system
may panic as it is dereferencing an array of fixed (short) length.  Its
possible (and actually often happens) that the capability system
accidentally stumbled into a valid memory region but it also regularly
happens that it hits invalid memory and BUGs.  If such an operation does
get past cap_capable then the selinux system is sure to have problems as
it already does a (simple) validity check and BUG.  This is known to
happen by the broken and buggy firegl driver.

This patch cleanly checks all capable calls and BUG if a call is for an
invalid capability.  This will likely break the firegl driver for some
situations, but it is the right thing to do.  Garbage into a security
system gets you killed/bugged

Signed-off-by: Eric Paris <eparis@redhat.com>
Acked-by: Arjan van de Ven <arjan@linux.intel.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Acked-by: Andrew G. Morgan <morgan@kernel.org>
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'security')
0 files changed, 0 insertions, 0 deletions