]> git.baikalelectronics.ru Git - kernel.git/commit
apparmor: fix absroot causing audited secids to begin with =
authorJohn Johansen <john.johansen@canonical.com>
Tue, 14 Dec 2021 10:59:28 +0000 (02:59 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Aug 2022 09:18:20 +0000 (11:18 +0200)
commita2e4d16b2b7720d78ebb6fcfe8c8dd0b8fb188d3
treecc24e92b813a8fdf57d3a9d0359e596cb6925072
parent203388c3ca15c21e0ee85e78e2c2a5d1c714d5bb
apparmor: fix absroot causing audited secids to begin with =

commit c823f720f5eca96a3e97f3b53b9b3408453892f4 upstream.

AppArmor is prefixing secids that are converted to secctx with the =
to indicate the secctx should only be parsed from an absolute root
POV. This allows catching errors where secctx are reparsed back into
internal labels.

Unfortunately because audit is using secid to secctx conversion this
means that subject and object labels can result in a very unfortunate
== that can break audit parsing.

eg. the subj==unconfined term in the below audit message

type=USER_LOGIN msg=audit(1639443365.233:160): pid=1633 uid=0 auid=1000
ses=3 subj==unconfined msg='op=login id=1000 exe="/usr/sbin/sshd"
hostname=192.168.122.1 addr=192.168.122.1 terminal=/dev/pts/1 res=success'

Fix this by switch the prepending of = to a _. This still works as a
special character to flag this case without breaking audit. Also move
this check behind debug as it should not be needed during normal
operqation.

Fixes: d2e43ca03cb5 ("apparmor: add support for absolute root view based labels")
Reported-by: Casey Schaufler <casey@schaufler-ca.com>
Signed-off-by: John Johansen <john.johansen@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
security/apparmor/include/lib.h
security/apparmor/label.c