RE: [PATCH v2 6/6] ima: Fix return value of ima_write_policy()

From: Krzysztof Struczynski
Date: Wed Apr 29 2020 - 02:43:38 EST


Hi Mimi,

> -----Original Message-----
> From: Mimi Zohar [mailto:zohar@xxxxxxxxxxxxx]
> Sent: Tuesday, April 28, 2020 7:47 PM
> To: Roberto Sassu <roberto.sassu@xxxxxxxxxx>; Krzysztof Struczynski
> <krzysztof.struczynski@xxxxxxxxxx>
> Cc: linux-integrity@xxxxxxxxxxxxxxx; linux-security-module@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; Silviu Vlasceanu
> <Silviu.Vlasceanu@xxxxxxxxxx>; Krzysztof Struczynski
> <krzysztof.struczynski@xxxxxxxxxx>; stable@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH v2 6/6] ima: Fix return value of ima_write_policy()
>
> Hi Roberto,
>
> On Mon, 2020-04-27 at 12:31 +0200, Roberto Sassu wrote:
> > This patch fixes the return value of ima_write_policy() when a new
> > policy is directly passed to IMA and the current policy requires
> > appraisal of the file containing the policy. Currently, if appraisal
> > is not in ENFORCE mode,
> > ima_write_policy() returns 0 and leads user space applications to an
> > endless loop. Fix this issue by denying the operation regardless of
> > the appraisal mode.
> >
> > Changelog
> >
> > v1:
> > - deny the operation in all cases (suggested by Mimi, Krzysztof)
>
> Relatively recently, people have moved away from including the "Changelog"
> in the upstream commit. (I'm removing them now.)
>
> >
> > Cc: stable@xxxxxxxxxxxxxxx # 4.10.x
> > Fixes: 19f8a84713edc ("ima: measure and appraise the IMA policy
> > itself")
> > Signed-off-by: Roberto Sassu <roberto.sassu@xxxxxxxxxx>
>
> Without the Changelog, the only way of acknowledging people's contributions
> is by including their tags. ÂKrzysztof, did you want to add your "Reviewed-by"
> tag?

Please add:
Reviewed-by: Krzysztof Struczynski <krzysztof.struczynski@xxxxxxxxxx>

Thanks,
Krzysztof

>
> > ---
>
> People have started putting the Changelog or any comments immediately
> below the separator "---" here.
>
> thanks,
>
> Mimi
>
> > security/integrity/ima/ima_fs.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/security/integrity/ima/ima_fs.c
> > b/security/integrity/ima/ima_fs.c index 8b030a1c5e0d..e3fcad871861
> > 100644
> > --- a/security/integrity/ima/ima_fs.c
> > +++ b/security/integrity/ima/ima_fs.c
> > @@ -338,8 +338,7 @@ static ssize_t ima_write_policy(struct file *file, const
> char __user *buf,
> > integrity_audit_msg(AUDIT_INTEGRITY_STATUS, NULL, NULL,
> > "policy_update", "signed policy required",
> > 1, 0);
> > - if (ima_appraise & IMA_APPRAISE_ENFORCE)
> > - result = -EACCES;
> > + result = -EACCES;
> > } else {
> > result = ima_parse_add_rule(data);
> > }