selinux: ensure the context is NUL terminated in security_context_to_sid_core()
authorPaul Moore <paul@paul-moore.com>
Tue, 28 Nov 2017 23:51:12 +0000 (18:51 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 25 Feb 2018 10:05:41 +0000 (11:05 +0100)
commitfe1cb580e84865f3c6be99b952a626323228e781
tree177d89b2c150129944b9c79e66c9f65ca89f7d8c
parent5cab144f072bdae16f37a06efb0dad210c7ff7bb
selinux: ensure the context is NUL terminated in security_context_to_sid_core()

commit ef28df55ac27e1e5cd122e19fa311d886d47a756 upstream.

The syzbot/syzkaller automated tests found a problem in
security_context_to_sid_core() during early boot (before we load the
SELinux policy) where we could potentially feed context strings without
NUL terminators into the strcmp() function.

We already guard against this during normal operation (after the SELinux
policy has been loaded) by making a copy of the context strings and
explicitly adding a NUL terminator to the end.  The patch extends this
protection to the early boot case (no loaded policy) by moving the context
copy earlier in security_context_to_sid_core().

Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Reviewed-By: William Roberts <william.c.roberts@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
security/selinux/ss/services.c