[apparmor] [PATCH 15/20] Fix screening of change_profile permission from file rule entries

John Johansen john.johansen at canonical.com
Fri May 29 08:39:21 UTC 2015


While change_profile rules are always created separately from file
rules. The merge phase can result in change_profile rules merging
with file rules, resulting in the change_profile permission being
set when a file rule is created.

Make sure to screen off the change_profile permission, when creating
a file rule.

Note: the proper long term fix is to split file, link and change_profile
rules into their own classes.

Signed-off-by: John Johansen <john.johansen at canonical.com>
---
 parser/parser_regex.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/parser/parser_regex.c b/parser/parser_regex.c
index 8c6a26a..74b4761 100644
--- a/parser/parser_regex.c
+++ b/parser/parser_regex.c
@@ -532,8 +532,9 @@ static int process_dfa_entry(aare_rules *dfarules, struct cod_entry *entry)
 	if (entry->deny) {
 		if ((entry->mode & ~(AA_LINK_BITS | AA_CHANGE_PROFILE)) &&
 		    !dfarules->add_rule(tbuf.c_str(), entry->deny,
-					entry->mode & ~AA_LINK_BITS,
-					entry->audit & ~AA_LINK_BITS, dfaflags))
+					entry->mode & ~(AA_LINK_BITS | AA_CHANGE_PROFILE),
+					entry->audit & ~(AA_LINK_BITS | AA_CHANGE_PROFILE),
+		    dfaflags))
 			return FALSE;
 	} else if (entry->mode & ~AA_CHANGE_PROFILE) {
 		if (!dfarules->add_rule(tbuf.c_str(), entry->deny, entry->mode,
-- 
2.1.4




More information about the AppArmor mailing list