summaryrefslogtreecommitdiff
path: root/kernels/linux-libre-aarch64/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-05-26 21:38:09 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-05-26 21:38:18 +0200
commitc5e43b6547fd801793617024b51d3117227ba551 (patch)
tree7bbaa61e4ff951cff7e6396e3a1c0b30cdcbc62c /kernels/linux-libre-aarch64/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
parent28d9b73dcbae486c81a534f7ecb86c3e11763737 (diff)
downloadabslibre-c5e43b6547fd801793617024b51d3117227ba551.tar.gz
abslibre-c5e43b6547fd801793617024b51d3117227ba551.tar.bz2
abslibre-c5e43b6547fd801793617024b51d3117227ba551.zip
kernels: remove linux-libre-aarch64
This kernel has been replaced by linux-libre-64 in libre in an attempt to unify all 64bit kernels made for 32bit rootfs. This has been tested on a SBC that has good upstream support in linux and in u-boot, and a 64bit CPU. That SBC is however not officially supported by Parabola as it still require nonfree binaries in u-boot to boot. The way to go to add official 64bit support ARM computers with 64bit CPUs is to get devices that can at least boot with fully free software. Some SBCs with an Allwinner SOCs like the A64 seem a good target to do that as some SBCs have good support in upstream Linux and u-boot and can boot with free software, and we already have an uboot4extlinux package for many boards with Allwinner SOCs, so we could probably reuse most of that work. However I don't have an SBC like that yet, so until now I tested on a board I was given at a conference. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'kernels/linux-libre-aarch64/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch')
-rw-r--r--kernels/linux-libre-aarch64/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch132
1 files changed, 0 insertions, 132 deletions
diff --git a/kernels/linux-libre-aarch64/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/kernels/linux-libre-aarch64/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
deleted file mode 100644
index ae31ff9b5..000000000
--- a/kernels/linux-libre-aarch64/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 524202522faf86d81efaa96dc984d1996ddda302 Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
-Date: Mon, 16 Sep 2019 04:53:20 +0200
-Subject: [PATCH 01/13] ZEN: Add sysctl and CONFIG to disallow unprivileged
- CLONE_NEWUSER
-
-Our default behavior continues to match the vanilla kernel.
----
- init/Kconfig | 16 ++++++++++++++++
- kernel/fork.c | 15 +++++++++++++++
- kernel/sysctl.c | 12 ++++++++++++
- kernel/user_namespace.c | 7 +++++++
- 4 files changed, 50 insertions(+)
-
-diff --git a/init/Kconfig b/init/Kconfig
-index b4daad2bac23..362f82c5ec07 100644
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -1118,6 +1118,22 @@ config USER_NS
-
- If unsure, say N.
-
-+config USER_NS_UNPRIVILEGED
-+ bool "Allow unprivileged users to create namespaces"
-+ default y
-+ depends on USER_NS
-+ help
-+ When disabled, unprivileged users will not be able to create
-+ new namespaces. Allowing users to create their own namespaces
-+ has been part of several recent local privilege escalation
-+ exploits, so if you need user namespaces but are
-+ paranoid^Wsecurity-conscious you want to disable this.
-+
-+ This setting can be overridden at runtime via the
-+ kernel.unprivileged_userns_clone sysctl.
-+
-+ If unsure, say Y.
-+
- config PID_NS
- bool "PID Namespaces"
- default y
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 6cabc124378c..fda4986da9eb 100644
---- a/kernel/fork.c
-+++ b/kernel/fork.c
-@@ -106,6 +106,11 @@
-
- #define CREATE_TRACE_POINTS
- #include <trace/events/task.h>
-+#ifdef CONFIG_USER_NS
-+extern int unprivileged_userns_clone;
-+#else
-+#define unprivileged_userns_clone 0
-+#endif
-
- /*
- * Minimum number of threads to boot the kernel
-@@ -1779,6 +1784,10 @@ static __latent_entropy struct task_struct *copy_process(
- if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
- return ERR_PTR(-EINVAL);
-
-+ if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone)
-+ if (!capable(CAP_SYS_ADMIN))
-+ return ERR_PTR(-EPERM);
-+
- /*
- * Thread groups must share signals as well, and detached threads
- * can only be started up within the thread group.
-@@ -2826,6 +2835,12 @@ int ksys_unshare(unsigned long unshare_flags)
- if (unshare_flags & CLONE_NEWNS)
- unshare_flags |= CLONE_FS;
-
-+ if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) {
-+ err = -EPERM;
-+ if (!capable(CAP_SYS_ADMIN))
-+ goto bad_unshare_out;
-+ }
-+
- err = check_unshare_flags(unshare_flags);
- if (err)
- goto bad_unshare_out;
-diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 70665934d53e..9797869ed829 100644
---- a/kernel/sysctl.c
-+++ b/kernel/sysctl.c
-@@ -110,6 +110,9 @@ extern int core_uses_pid;
- extern char core_pattern[];
- extern unsigned int core_pipe_limit;
- #endif
-+#ifdef CONFIG_USER_NS
-+extern int unprivileged_userns_clone;
-+#endif
- extern int pid_max;
- extern int pid_max_min, pid_max_max;
- extern int percpu_pagelist_fraction;
-@@ -546,6 +549,15 @@ static struct ctl_table kern_table[] = {
- .proc_handler = proc_dointvec,
- },
- #endif
-+#ifdef CONFIG_USER_NS
-+ {
-+ .procname = "unprivileged_userns_clone",
-+ .data = &unprivileged_userns_clone,
-+ .maxlen = sizeof(int),
-+ .mode = 0644,
-+ .proc_handler = proc_dointvec,
-+ },
-+#endif
- #ifdef CONFIG_PROC_SYSCTL
- {
- .procname = "tainted",
-diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
-index 8eadadc478f9..c36ecd19562c 100644
---- a/kernel/user_namespace.c
-+++ b/kernel/user_namespace.c
-@@ -21,6 +21,13 @@
- #include <linux/bsearch.h>
- #include <linux/sort.h>
-
-+/* sysctl */
-+#ifdef CONFIG_USER_NS_UNPRIVILEGED
-+int unprivileged_userns_clone = 1;
-+#else
-+int unprivileged_userns_clone;
-+#endif
-+
- static struct kmem_cache *user_ns_cachep __read_mostly;
- static DEFINE_MUTEX(userns_state_mutex);
-
---
-2.24.1
-