OSDN Git Service

selinux: avoid silent denials in permissive mode under RCU walk
authorStephen Smalley <sds@tycho.nsa.gov>
Wed, 12 Dec 2018 15:10:55 +0000 (10:10 -0500)
committerPaul Moore <paul@paul-moore.com>
Fri, 11 Jan 2019 01:32:53 +0000 (20:32 -0500)
commit3a28cff3bd4bf43f02be0c4e7933aebf3dc8197e
tree64f75c4103e27e02a5edf203bf5f8a1a420ab1e8
parentbfeffd155283772bbe78c6a05dec7c0128ee500c
selinux: avoid silent denials in permissive mode under RCU walk

commit 0dc1ba24f7fff6 ("SELINUX: Make selinux cache VFS RCU walks safe")
results in no audit messages at all if in permissive mode because the
cache is updated during the rcu walk and thus no denial occurs on
the subsequent ref walk.  Fix this by not updating the cache when
performing a non-blocking permission check.  This only affects search
and symlink read checks during rcu walk.

Fixes: 0dc1ba24f7fff6 ("SELINUX: Make selinux cache VFS RCU walks safe")
Reported-by: BMK <bmktuwien@gmail.com>
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/selinux/avc.c
security/selinux/hooks.c
security/selinux/include/avc.h