From: James Morris <jmorris@namei.org>
To: linux-security-module@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 13/20] SELinux: fix off by 1 reference of class_to_string in context_struct_compute_av
Date: Tue, 8 Jul 2008 01:42:15 +0900 [thread overview]
Message-ID: <1215448942-17581-14-git-send-email-jmorris@namei.org> (raw)
In-Reply-To: <1215448942-17581-1-git-send-email-jmorris@namei.org>
From: Eric Paris <eparis@redhat.com>
The class_to_string array is referenced by tclass. My code mistakenly
was using tclass - 1. If the proceeding class is a userspace class
rather than kernel class this may cause a denial/EINVAL even if unknown
handling is set to allow. The bug shouldn't be allowing excess
privileges since those are given based on the contents of another array
which should be correctly referenced.
At this point in time its pretty unlikely this is going to cause
problems. The most recently added kernel classes which could be
affected are association, dccp_socket, and peer. Its pretty unlikely
any policy with handle_unknown=allow doesn't have association and
dccp_socket undefined (they've been around longer than unknown handling)
and peer is conditionalized on a policy cap which should only be defined
if that class exists in policy.
Signed-off-by: Eric Paris <eparis@redhat.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: James Morris <jmorris@namei.org>
---
security/selinux/ss/services.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index d06df33..f26a8ca 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -325,7 +325,7 @@ static int context_struct_compute_av(struct context *scontext,
goto inval_class;
if (unlikely(tclass > policydb.p_classes.nprim))
if (tclass > kdefs->cts_len ||
- !kdefs->class_to_string[tclass - 1] ||
+ !kdefs->class_to_string[tclass] ||
!policydb.allow_unknown)
goto inval_class;
--
1.5.5.1
next prev parent reply other threads:[~2008-07-07 16:52 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-07 16:42 SELinux patches for 2.6.26 James Morris
2008-07-07 16:42 ` [PATCH 01/20] selinux: support deferred mapping of contexts James Morris
2008-07-07 16:42 ` [PATCH 02/20] SELinux: fix sleeping allocation in security_context_to_sid James Morris
2008-07-07 16:42 ` [PATCH 03/20] SELinux: keep the code clean formating and syntax James Morris
2008-07-07 16:42 ` [PATCH 04/20] SELinux: reorder inode_security_struct to increase objs/slab on 64bit James Morris
2008-07-07 16:42 ` [PATCH 05/20] SELinux: remove inherit field from inode_security_struct James Morris
2008-07-07 16:42 ` [PATCH 06/20] Security: split proc ptrace checking into read vs. attach James Morris
2008-07-07 16:42 ` [PATCH 07/20] SELinux: enable processes with mac_admin to get the raw inode contexts James Morris
2008-07-07 16:42 ` [PATCH 08/20] selinux: simplify ioctl checking James Morris
2008-07-07 16:42 ` [PATCH 09/20] selinux: fix endianness bug in network node address handling James Morris
2008-07-07 16:42 ` [PATCH 10/20] SELinux: open code policy_rwlock James Morris
2008-07-07 16:42 ` [PATCH 11/20] SELinux: open code load_mutex James Morris
2008-07-07 16:42 ` [PATCH 12/20] SELinux: open code sidtab lock James Morris
2008-07-07 16:42 ` James Morris [this message]
2008-07-07 16:42 ` [PATCH 14/20] SELinux: drop load_mutex in security_load_policy James Morris
2008-07-07 16:42 ` [PATCH 15/20] selinux: change handling of invalid classes (Was: Re: 2.6.26-rc5-mm1 selinux whine) James Morris
2008-07-07 16:42 ` [PATCH 16/20] SELinux: more user friendly unknown handling printk James Morris
2008-07-07 16:42 ` [PATCH 17/20] SELinux: remove unused and shadowed addrlen variable James Morris
2008-07-07 16:42 ` [PATCH 18/20] SELinux: use do_each_thread as a proper do/while block James Morris
2008-07-07 16:42 ` [PATCH 19/20] security: fix return of void-valued expressions James Morris
2008-07-07 16:42 ` [PATCH 20/20] SELinux: allow fstype unknown to policy to use xattrs if present James Morris
2008-07-07 18:23 ` SELinux patches for 2.6.26 Theodore Tso
2008-07-07 22:49 ` James Morris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1215448942-17581-14-git-send-email-jmorris@namei.org \
--to=jmorris@namei.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®