Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44a6aea9 authored by Jeff Vander Stoep's avatar Jeff Vander Stoep Committed by Alistair Delva
Browse files

Revert "ANDROID: security,perf: Allow further restriction of perf_event_open"

Unfork Android.

This reverts commit 8e5e42d5.

Perf_event_paranoid=3 is no longer needed on Android. Access control
of perf events is now done by selinux. See:
https://patchwork.kernel.org/patch/11185793/



Bug: 120445712
Bug: 137092007
Signed-off-by: default avatarJeff Vander Stoep <jeffv@google.com>
Change-Id: Iba493424174b30baff460caaa25a54a472c87bd4
parent 1ed0039b
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -653,8 +653,7 @@ allowed to execute.
perf_event_paranoid:
perf_event_paranoid:


Controls use of the performance events system by unprivileged
Controls use of the performance events system by unprivileged
users (without CAP_SYS_ADMIN).  The default value is 3 if
users (without CAP_SYS_ADMIN).  The default value is 2.
CONFIG_SECURITY_PERF_EVENTS_RESTRICT is set, or 2 otherwise.


 -1: Allow use of (almost) all events by all users
 -1: Allow use of (almost) all events by all users
     Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
     Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
@@ -662,7 +661,6 @@ CONFIG_SECURITY_PERF_EVENTS_RESTRICT is set, or 2 otherwise.
     Disallow raw tracepoint access by users without CAP_SYS_ADMIN
     Disallow raw tracepoint access by users without CAP_SYS_ADMIN
>=1: Disallow CPU event access by users without CAP_SYS_ADMIN
>=1: Disallow CPU event access by users without CAP_SYS_ADMIN
>=2: Disallow kernel profiling by users without CAP_SYS_ADMIN
>=2: Disallow kernel profiling by users without CAP_SYS_ADMIN
>=3: Disallow all event access by users without CAP_SYS_ADMIN


==============================================================
==============================================================


+0 −1
Original line number Original line Diff line number Diff line
@@ -455,7 +455,6 @@ CONFIG_PANIC_TIMEOUT=5
CONFIG_SCHEDSTATS=y
CONFIG_SCHEDSTATS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
CONFIG_SECURITY=y
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_NETWORK=y
CONFIG_LSM_MMAP_MIN_ADDR=65536
CONFIG_LSM_MMAP_MIN_ADDR=65536
+0 −1
Original line number Original line Diff line number Diff line
@@ -483,7 +483,6 @@ CONFIG_IO_DELAY_NONE=y
CONFIG_DEBUG_BOOT_PARAMS=y
CONFIG_DEBUG_BOOT_PARAMS=y
CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTIMIZE_INLINING=y
CONFIG_UNWINDER_FRAME_POINTER=y
CONFIG_UNWINDER_FRAME_POINTER=y
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
CONFIG_SECURITY=y
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_PATH=y
CONFIG_SECURITY_PATH=y
+0 −5
Original line number Original line Diff line number Diff line
@@ -1187,11 +1187,6 @@ int perf_event_max_stack_handler(struct ctl_table *table, int write,
#define PERF_SECURITY_KERNEL		2
#define PERF_SECURITY_KERNEL		2
#define PERF_SECURITY_TRACEPOINT	3
#define PERF_SECURITY_TRACEPOINT	3


static inline bool perf_paranoid_any(void)
{
	return sysctl_perf_event_paranoid > 2;
}

static inline int perf_is_paranoid(void)
static inline int perf_is_paranoid(void)
{
{
	return sysctl_perf_event_paranoid > -1;
	return sysctl_perf_event_paranoid > -1;
+0 −8
Original line number Original line Diff line number Diff line
@@ -397,13 +397,8 @@ static cpumask_var_t perf_online_mask;
 *   0 - disallow raw tracepoint access for unpriv
 *   0 - disallow raw tracepoint access for unpriv
 *   1 - disallow cpu events for unpriv
 *   1 - disallow cpu events for unpriv
 *   2 - disallow kernel profiling for unpriv
 *   2 - disallow kernel profiling for unpriv
 *   3 - disallow all unpriv perf event use
 */
 */
#ifdef CONFIG_SECURITY_PERF_EVENTS_RESTRICT
int sysctl_perf_event_paranoid __read_mostly = 3;
#else
int sysctl_perf_event_paranoid __read_mostly = 2;
int sysctl_perf_event_paranoid __read_mostly = 2;
#endif


/* Minimum for 512 kiB + 1 user control page */
/* Minimum for 512 kiB + 1 user control page */
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
@@ -10054,9 +10049,6 @@ SYSCALL_DEFINE5(perf_event_open,
	if (flags & ~PERF_FLAG_ALL)
	if (flags & ~PERF_FLAG_ALL)
		return -EINVAL;
		return -EINVAL;


	if (perf_paranoid_any() && !capable(CAP_SYS_ADMIN))
		return -EACCES;

	/* Do we allow access to perf_event_open(2) ? */
	/* Do we allow access to perf_event_open(2) ? */
	err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
	err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
	if (err)
	if (err)
Loading