No description
Find a file
Nicolas Iooss f1ba58a199 libsepol/cil: make cil_resolve_name() fail for '.'
This CIL policy makes secilc crash with a NULL pointer dereference:

    (class CLASS (PERM))
    (classorder (CLASS))
    (sid SID)
    (sidorder (SID))
    (user USER)
    (role ROLE)
    (type TYPE)
    (category CAT)
    (categoryorder (CAT))
    (sensitivity SENS)
    (sensitivityorder (SENS))
    (sensitivitycategory SENS (CAT))
    (allow TYPE self (CLASS (PERM)))
    (roletype ROLE TYPE)
    (userrole USER ROLE)
    (userlevel USER (SENS))
    (userrange USER ((SENS)(SENS (CAT))))
    (sidcontext SID (USER ROLE TYPE ((SENS)(SENS))))

    (allow . self (CLASS (PERM)))

Using "." in the allow statement makes strtok_r() return NULL in
cil_resolve_name() and this result is then used in a call to
cil_symtab_get_datum(), which is thus invalid.

Instead of crashing, make secilc fail with an error message.

This bug has been found by fuzzing secilc with american fuzzy lop.

Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org>
2016-10-04 10:28:18 -04:00
checkpolicy Update VERSION and ChangeLog files for 2.6-rc1 release. 2016-09-30 12:15:08 -04:00
libselinux Updated libselinux ChangeLog 2016-10-03 09:28:57 -04:00
libsemanage Updated libsemanage ChangeLog. 2016-10-03 14:55:01 -04:00
libsepol libsepol/cil: make cil_resolve_name() fail for '.' 2016-10-04 10:28:18 -04:00
policycoreutils Update VERSION and ChangeLog files for 2.6-rc1 release. 2016-09-30 12:15:08 -04:00
scripts Add secilc to release script. 2015-03-31 12:41:28 -04:00
secilc Update VERSION and ChangeLog files for 2.6-rc1 release. 2016-09-30 12:15:08 -04:00
sepolgen Update VERSION and ChangeLog files for 2.6-rc1 release. 2016-09-30 12:15:08 -04:00
.gitignore global: gitignore: add a couple of more editor backup filetypes 2013-02-01 12:14:57 -05:00
CleanSpec.mk Add empty top level Android.mk / CleanSpec.mk files 2015-04-16 07:54:09 -04:00
Makefile Makefile: make distclean target work 2016-09-29 10:48:14 -04:00
README Add redhat-rpm-config as a build dependency on Fedora. 2016-05-04 15:54:27 -04:00

Please submit all bug reports and patches to selinux@tycho.nsa.gov.
Subscribe via selinux-join@tycho.nsa.gov.

Build dependencies on Fedora:
yum install audit-libs-devel bison bzip2-devel dbus-devel dbus-glib-devel flex flex-devel flex-static glib2-devel libcap-devel libcap-ng-devel pam-devel pcre-devel python-devel setools-devel swig ustr-devel xmlto redhat-rpm-config

To build and install everything under a private directory, run:
make DESTDIR=~/obj install install-pywrap

To install as the default system libraries and binaries
(overwriting any previously installed ones - dangerous!),
on x86_64, run:
make LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install install-pywrap relabel
or on x86 (32-bit), run:
make install install-pywrap relabel

This may render your system unusable if the upstream SELinux userspace
lacks library functions or other dependencies relied upon by your
distribution.  If it breaks, you get to keep both pieces.