Re: [PATCH 3/4] selinux: reject an unclaimed class value in security_get_classes()
Stephen Smalley <[email protected]> Fri, 31 Jul 2026 15:46:38 -0400
| Newsgroups | org.kernel.vger.selinux,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAEjxPJ42Yfcje5g-6Yv50zL_-tu1fYVo3mRz_VZ7JCRAXntQ1A@mail.gmail.com> |
On Fri, Jul 31, 2026 at 1:44=E2=80=AFPM Bryam Vargas via B4 Relay <[email protected]> wrote: > > From: Bryam Vargas <[email protected]> > > security_get_classes() sizes an array by p_classes.nprim and fills it at > value - 1, so a class value the policy never defines leaves a NULL. > sel_make_classes() passes every entry to sel_make_dir(), reaching the sam= e > d_alloc_name() dereference as the permission array. The class symbol tabl= e > is allowed to be sparse (policydb_class_isvalid() exists to absorb that), > but this getter builds its own array straight from the hash table and has > no such predicate. > > Fail the lookup when a value went unclaimed instead of handing out the > NULL. Conforming policies define every class they declare and are > unaffected. > > Fixes: 55fcf09b3fe4 ("selinux: add support for querying object classes an= d permissions from the running policy") > Cc: [email protected] > Signed-off-by: Bryam Vargas <[email protected]> Acked-by: Stephen Smalley <[email protected]>