Patch "ima: add support for new "euid" policy condition" has been added to the 4.1-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
ima: add support for new "euid" policy condition
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ima-add-support-for-new-euid-policy-condition.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
139069eff7388407f19794384c42a534d618ccd7Mon Sep 17 00:00:00 2001
From: Mimi Zohar <[email protected]>
Date: Wed, 5 Nov 2014 07:48:36 -0500
Subject: ima: add support for new "euid" policy condition
From: Mimi Zohar <[email protected]>
commit 139069eff7388407f19794384c42a534d618ccd7 upstream.
The new "euid" policy condition measures files with the specified effective uid (euid). In addition, for CAP_SETUID files it measures files with the specified uid or suid.
Changelog:
- fixed checkpatch.pl warnings
- fixed avc denied {setuid} messages - based on Roberto's feedback
--- Documentation/ABI/testing/ima_policy | 3 ++- security/integrity/ima/ima_policy.c | 27 +++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-)
Documentation/ABI/testing/ima_policy +2 -1
@@ -20,7 +20,7 @@ Description: action: measure | dont_measure | appraise | dont_appraise | audit condition:= base | lsm [option] base: [[func=] [mask=] [fsmagic=] [fsuuid=] [uid=] - [fowner]] + [euid=] [fowner=]] lsm: [[subj_user=] [subj_role=] [subj_type=] [obj_user=] [obj_role=] [obj_type=]] option: [[appraise_type=]] [permit_directio]
@@ -31,6 +31,7 @@ Description: fsmagic:= hex value fsuuid:= file system UUID (e.g 8bcbe394-4f13-4144-be8e-5aa9ea2ce2f6) uid:= decimal value + euid:= decimal value fowner:=decimal value lsm: are LSM specific option: appraise_type:= [imasig]
security/integrity/ima/ima_policy.c +23 -4
@@ -27,6 +27,7 @@#define IMA_UID 0x0008#define IMA_FOWNER 0x0010#define IMA_FSUUID 0x0020 +#define IMA_EUID 0x0080#define UNKNOWN 0#define MEASURE 0x0001/* same as IMA_MEASURE */
@@ -194,6 +195,16 @@ static bool ima_match_rules(struct ima_rreturn false;if ((rule->flags &IMA_UID ) && !uid_eq (rule->uid, cred->uid))return false; +if (rule->flags &IMA_EUID ) { +if (has_capability_noaudit (current,CAP_SETUID )) { +if (!uid_eq (rule->uid, cred->euid) + && !uid_eq (rule->uid, cred->suid) + && !uid_eq (rule->uid, cred->uid)) +return false; + }else if (!uid_eq (rule->uid, cred->euid)) +return false; + } +if ((rule->flags &IMA_FOWNER ) && !uid_eq (rule->fowner, inode->i_uid))return false;for (i =0 ; i <MAX_LSM_RULES ; i++) {
@@ -373,7 +384,8 @@ enum { Opt_audit, Opt_obj_user, Opt_obj_role, Opt_obj_type, Opt_subj_user, Opt_subj_role, Opt_subj_type, - Opt_func, Opt_mask, Opt_fsmagic, Opt_uid, Opt_fowner, + Opt_func, Opt_mask, Opt_fsmagic, + Opt_uid, Opt_euid, Opt_fowner, Opt_appraise_type, Opt_fsuuid, Opt_permit_directio };
@@ -394,6 +406,7 @@ static match_table_t policy_tokens = { {Opt_fsmagic, "fsmagic=%s"}, {Opt_fsuuid, "fsuuid=%s"}, {Opt_uid, "uid=%s"}, + {Opt_euid, "euid=%s"}, {Opt_fowner, "fowner=%s"}, {Opt_appraise_type, "appraise_type=%s"}, {Opt_permit_directio, "permit_directio"},
@@ -566,6 +579,9 @@ static int ima_parse_rule(char *rule, stbreak ;case Opt_uid:ima_log_string (ab,"uid" , args[0 ].from); +case Opt_euid: +if (token == Opt_euid) +ima_log_string (ab,"euid" , args[0 ].from);if (uid_valid (entry->uid)) { result = -EINVAL ;
@@ -574,11 +590,14 @@ static int ima_parse_rule(char *rule, st result =kstrtoul (args[0 ].from,10 , &lnum);if (!result) { - entry->uid =make_kuid (current_user_ns (), (uid_t )lnum); -if (!uid_valid (entry->uid) || (((uid_t )lnum) != lnum)) + entry->uid =make_kuid (current_user_ns (), + (uid_t ) lnum); +if (!uid_valid (entry->uid) || + (uid_t )lnum != lnum) result = -EINVAL ;else - entry->flags |=IMA_UID ; + entry->flags |= (token == Opt_uid) + ?IMA_UID :IMA_EUID ; }break ;case Opt_fowner:
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/keys-fix-ca_keys-partial-key-matching.patch queue-4.1/ima-update-builtin-policies.patch queue-4.1/ima-extend-mask-policy-matching-support.patch queue-4.1/ima-cleanup-ima_init_policy-a-little.patch queue-4.1/evm-labeling-pseudo-filesystems-exception.patch queue-4.1/ima-fix-ima_show_template_data_ascii.patch queue-4.1/ima-add-support-for-new-euid-policy-condition.patch queue-4.1/ima-do-not-measure-or-appraise-the-nsfs-filesystem.patch queue-4.1/ima-skip-measurement-of-cgroupfs-files-and-update-documentation.patch