commit:     e9c469300bd10185540b0698ed074a98d86f4672
Author:     Chris PeBenito <pebenito <AT> ieee <DOT> org>
AuthorDate: Fri Mar 19 19:03:47 2021 +0000
Commit:     Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Fri Apr  2 18:54:58 2021 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=e9c46930

selinux: Change generic Boolean type to boolean_t.

This will prevent other security_t writers from setting Boolean pending
values, which could be activated unwittingly by setbool processes.

Signed-off-by: Chris PeBenito <pebenito <AT> ieee.org>
Signed-off-by: Jason Zaman <perfinion <AT> gentoo.org>

 policy/modules/kernel/selinux.if | 7 ++++---
 policy/modules/kernel/selinux.te | 5 ++++-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/policy/modules/kernel/selinux.if b/policy/modules/kernel/selinux.if
index 21d22ded..f8fcba98 100644
--- a/policy/modules/kernel/selinux.if
+++ b/policy/modules/kernel/selinux.if
@@ -391,17 +391,17 @@ interface(`selinux_read_policy',`
 #
 interface(`selinux_set_generic_booleans',`
        gen_require(`
-               type security_t;
+               type boolean_t, security_t;
                bool secure_mode_setbool;
        ')
 
        dev_search_sysfs($1)
 
        allow $1 security_t:dir list_dir_perms;
-       allow $1 security_t:file read_file_perms;
+       allow $1 boolean_t:file read_file_perms;
 
        if(!secure_mode_setbool) {
-               allow $1 security_t:file write_file_perms;
+               allow $1 { boolean_t security_t }:file write_file_perms;
                allow $1 security_t:security setbool;
        }
 ')
@@ -443,6 +443,7 @@ interface(`selinux_set_all_booleans',`
 
        if (!secure_mode_setbool) {
                allow $1 security_t:security setbool;
+               allow $1 security_t:file write_file_perms;
                allow $1 { boolean_type -secure_mode_policyload_t }:file 
write_file_perms;
        }
 

diff --git a/policy/modules/kernel/selinux.te b/policy/modules/kernel/selinux.te
index 71147210..5bca43d3 100644
--- a/policy/modules/kernel/selinux.te
+++ b/policy/modules/kernel/selinux.te
@@ -26,6 +26,9 @@ attribute can_setenforce;
 attribute can_setsecparam;
 attribute selinux_unconfined_type;
 
+type boolean_t, boolean_type;
+genfscon selinuxfs /booleans/ -- gen_context(system_u:object_r:boolean_t,s0)
+
 type secure_mode_policyload_t;
 selinux_labeled_boolean(secure_mode_policyload_t, secure_mode_policyload)
 
@@ -34,7 +37,7 @@ selinux_labeled_boolean(secure_mode_policyload_t, 
secure_mode_policyload)
 # the permissions in the security class.  It is also
 # applied to selinuxfs inodes.
 #
-type security_t, boolean_type;
+type security_t;
 files_mountpoint(security_t)
 fs_type(security_t)
 mls_trusted_object(security_t)

Reply via email to