commit: b8f614bfbcc1fe34a9664de1b1937a6e6cfbcf40
Author: Kenton Groombridge <me <AT> concord <DOT> sh>
AuthorDate: Mon May 16 13:56:29 2022 +0000
Commit: Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Sat Sep 3 18:41:55 2022 +0000
URL:
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=b8f614bf
podman: add interface to rangetrans when executing conmon
Signed-off-by: Kenton Groombridge <me <AT> concord.sh>
Signed-off-by: Jason Zaman <perfinion <AT> gentoo.org>
policy/modules/services/podman.if | 29 +++++++++++++++++++++++++++++
policy/modules/services/podman.te | 20 ++++----------------
2 files changed, 33 insertions(+), 16 deletions(-)
diff --git a/policy/modules/services/podman.if
b/policy/modules/services/podman.if
index 7523e33d..626af3af 100644
--- a/policy/modules/services/podman.if
+++ b/policy/modules/services/podman.if
@@ -188,6 +188,35 @@ interface(`podman_run_conmon_user',`
podman_domtrans_conmon_user($1)
')
+########################################
+## <summary>
+## Make the specified domain perform a
+## range transition when executing conmon.
+## </summary>
+## <param name="domain">
+## <summary>
+## Domain to transition ranges.
+## </summary>
+## </param>
+## <param name="range">
+## <summary>
+## MLS range to transition to.
+## </summary>
+## </param>
+#
+interface(`podman_spec_rangetrans_conmon',`
+ gen_require(`
+ type podman_conmon_exec_t;
+ ')
+
+ ifdef(`enable_mcs',`
+ range_transition $1 podman_conmon_exec_t:process $2;
+ ')
+ ifdef(`enable_mls',`
+ range_transition $1 podman_conmon_exec_t:process $2;
+ ')
+')
+
########################################
## <summary>
## Read and write conmon unnamed pipes.
diff --git a/policy/modules/services/podman.te
b/policy/modules/services/podman.te
index 12c67145..bb0f67bd 100644
--- a/policy/modules/services/podman.te
+++ b/policy/modules/services/podman.te
@@ -61,6 +61,8 @@ container_manage_home_config(podman_t)
container_manage_sock_files(podman_t)
+podman_spec_rangetrans_conmon(podman_t, s0)
+
ifdef(`init_systemd',`
init_dbus_chat(podman_t)
init_setsched(podman_t)
@@ -129,6 +131,8 @@ storage_rw_fuse(podman_user_t)
userdom_relabel_generic_user_home_dirs(podman_user_t)
userdom_relabel_generic_user_home_files(podman_user_t)
+podman_spec_rangetrans_conmon(podman_user_t, s0)
+
ifdef(`init_systemd',`
# podman queries the cgroup manager (systemd) over the session bus
socket
dbus_getattr_session_runtime_socket(podman_user_t)
@@ -208,14 +212,6 @@ container_engine_tmp_filetrans(podman_conmon_t, { file
sock_file })
container_manage_engine_tmp_files(podman_conmon_t)
container_manage_engine_tmp_sock_files(podman_conmon_t)
-# Ensure conmon runs in s0 so that it can talk to the container
-ifdef(`enable_mcs',`
- range_transition podman_t podman_conmon_exec_t:process s0;
-')
-ifdef(`enable_mls',`
- range_transition podman_t podman_conmon_exec_t:process s0;
-')
-
ifdef(`init_systemd',`
init_get_transient_units_status(podman_conmon_t)
init_start_transient_units(podman_conmon_t)
@@ -287,14 +283,6 @@ container_engine_tmp_filetrans(podman_conmon_user_t, {
file sock_file })
container_manage_engine_tmp_files(podman_conmon_user_t)
container_manage_engine_tmp_sock_files(podman_conmon_user_t)
-# Ensure conmon runs in s0 so that it can talk to the container
-ifdef(`enable_mcs',`
- range_transition podman_user_t podman_conmon_exec_t:process s0;
-')
-ifdef(`enable_mls',`
- range_transition podman_user_t podman_conmon_exec_t:process s0;
-')
-
ifdef(`init_systemd',`
# conmon can read logs from containers which are
# sent to the system journal