2022-06-03 00:44:32

by Namhyung Kim

[permalink] [raw]
Subject: [PATCH] perf/core: Call LSM hook after copying perf_event_attr

It passes the attr struct to the security_perf_event_open() but it's
not initialized yet.

Fixes: da97e18458fb ("perf_event: Add support for LSM and SELinux checks")
Cc: Joel Fernandes (Google) <[email protected]>
Signed-off-by: Namhyung Kim <[email protected]>
---
kernel/events/core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index 7858bafffa9d..e035545f624f 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -12033,12 +12033,12 @@ SYSCALL_DEFINE5(perf_event_open,
if (flags & ~PERF_FLAG_ALL)
return -EINVAL;

- /* Do we allow access to perf_event_open(2) ? */
- err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
+ err = perf_copy_attr(attr_uptr, &attr);
if (err)
return err;

- err = perf_copy_attr(attr_uptr, &attr);
+ /* Do we allow access to perf_event_open(2) ? */
+ err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
if (err)
return err;

--
2.36.1.255.ge46751e96f-goog



2022-06-05 15:01:16

by Joel Fernandes

[permalink] [raw]
Subject: Re: [PATCH] perf/core: Call LSM hook after copying perf_event_attr

On Thu, Jun 02, 2022 at 03:47:54PM -0700, Namhyung Kim wrote:
> It passes the attr struct to the security_perf_event_open() but it's
> not initialized yet.
>
> Fixes: da97e18458fb ("perf_event: Add support for LSM and SELinux checks")
> Cc: Joel Fernandes (Google) <[email protected]>
> Signed-off-by: Namhyung Kim <[email protected]>
> ---
> kernel/events/core.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 7858bafffa9d..e035545f624f 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -12033,12 +12033,12 @@ SYSCALL_DEFINE5(perf_event_open,
> if (flags & ~PERF_FLAG_ALL)
> return -EINVAL;
>
> - /* Do we allow access to perf_event_open(2) ? */
> - err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
> + err = perf_copy_attr(attr_uptr, &attr);
> if (err)
> return err;
>
> - err = perf_copy_attr(attr_uptr, &attr);
> + /* Do we allow access to perf_event_open(2) ? */
> + err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);

Reviewed-by: Joel Fernandes (Google) <[email protected]>

thanks,

- Joel



> if (err)
> return err;
>
> --
> 2.36.1.255.ge46751e96f-goog
>

2022-06-24 18:15:58

by Namhyung Kim

[permalink] [raw]
Subject: Re: [PATCH] perf/core: Call LSM hook after copying perf_event_attr

Hi Peter,

On Fri, Jun 3, 2022 at 8:05 AM Joel Fernandes <[email protected]> wrote:
>
> On Thu, Jun 02, 2022 at 03:47:54PM -0700, Namhyung Kim wrote:
> > It passes the attr struct to the security_perf_event_open() but it's
> > not initialized yet.
> >
> > Fixes: da97e18458fb ("perf_event: Add support for LSM and SELinux checks")
> > Cc: Joel Fernandes (Google) <[email protected]>
> > Signed-off-by: Namhyung Kim <[email protected]>
> > ---
> > kernel/events/core.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/kernel/events/core.c b/kernel/events/core.c
> > index 7858bafffa9d..e035545f624f 100644
> > --- a/kernel/events/core.c
> > +++ b/kernel/events/core.c
> > @@ -12033,12 +12033,12 @@ SYSCALL_DEFINE5(perf_event_open,
> > if (flags & ~PERF_FLAG_ALL)
> > return -EINVAL;
> >
> > - /* Do we allow access to perf_event_open(2) ? */
> > - err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
> > + err = perf_copy_attr(attr_uptr, &attr);
> > if (err)
> > return err;
> >
> > - err = perf_copy_attr(attr_uptr, &attr);
> > + /* Do we allow access to perf_event_open(2) ? */
> > + err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
>
> Reviewed-by: Joel Fernandes (Google) <[email protected]>

Any chance you can pick this up?

Thanks,
Namhyung