commit:     7d6e1ef71e4aa6e19fef9c01fec4915289d7f861
Author:     Russell Coker <russell <AT> coker <DOT> com <DOT> au>
AuthorDate: Mon Sep 22 15:11:42 2025 +0000
Commit:     Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Sun Nov 16 00:13:57 2025 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=7d6e1ef7

usbguard (#1023)

* Some small fixes for usbguard

Signed-off-by: Russell Coker <russell <AT> coker.com.au>
Signed-off-by: Jason Zaman <perfinion <AT> gentoo.org>

 policy/modules/admin/apt.if         | 40 +++++++++++++++++++++++++++++++++++++
 policy/modules/admin/usbguard.if    | 18 +++++++++++++++++
 policy/modules/admin/usbguard.te    |  9 ++++++++-
 policy/modules/system/userdomain.if |  3 +++
 4 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/policy/modules/admin/apt.if b/policy/modules/admin/apt.if
index 5787e9804..b1fd16a27 100644
--- a/policy/modules/admin/apt.if
+++ b/policy/modules/admin/apt.if
@@ -236,6 +236,25 @@ interface(`apt_manage_db',`
        manage_lnk_files_pattern($1, apt_var_lib_t, apt_var_lib_t)
 ')
 
+########################################
+## <summary>
+##      watch apt db dirs
+## </summary>
+## <param name="domain">
+##      <summary>
+##      Domain allowed access.
+##      </summary>
+## </param>
+#
+interface(`apt_watch_db',`
+       gen_require(`
+               type apt_var_lib_t;
+       ')
+
+       files_search_var_lib($1)
+       allow $1 apt_var_lib_t:dir watch;
+')
+
 ########################################
 ## <summary>
 ##     Do not audit attempts to create,
@@ -257,3 +276,24 @@ interface(`apt_dontaudit_manage_db',`
        dontaudit $1 apt_var_lib_t:file manage_file_perms;
        dontaudit $1 apt_var_lib_t:lnk_file manage_lnk_file_perms;
 ')
+
+
+########################################
+## <summary>
+##      Send and receive messages from apt over dbus
+## </summary>
+## <param name="domain">
+##      <summary>
+##      Domain allowed access.
+##      </summary>
+## </param>
+#
+interface(`apt_dbus_chat',`
+       gen_require(`
+               type apt_t;
+               class dbus send_msg;
+       ')
+
+       allow $1 apt_t:dbus send_msg;
+       allow apt_t $1:dbus send_msg;
+')

diff --git a/policy/modules/admin/usbguard.if b/policy/modules/admin/usbguard.if
index 3f160b1cb..9faa939f8 100644
--- a/policy/modules/admin/usbguard.if
+++ b/policy/modules/admin/usbguard.if
@@ -21,3 +21,21 @@ interface(`usbguard_stream_connect',`
        files_search_runtime($1)
        stream_connect_pattern($1, usbguard_tmpfs_t, usbguard_tmpfs_t, 
usbguard_t)
 ')
+
+#####################################
+## <summary>
+##     mmap and rw usbguard tmpfs files
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`usbguard_mmap_rw_tmpfs',`
+       gen_require(`
+               type usbguard_tmpfs_t;
+       ')
+
+       allow $1 usbguard_tmpfs_t:file mmap_rw_file_perms;
+')

diff --git a/policy/modules/admin/usbguard.te b/policy/modules/admin/usbguard.te
index 26d9028b8..cf3e0e3ee 100644
--- a/policy/modules/admin/usbguard.te
+++ b/policy/modules/admin/usbguard.te
@@ -42,7 +42,7 @@ files_tmpfs_file(usbguard_tmpfs_t)
 allow usbguard_t self:capability { chown dac_read_search fowner };
 allow usbguard_t self:process { getcap signal };
 allow usbguard_t self:netlink_kobject_uevent_socket create_socket_perms;
-allow usbguard_t self:unix_stream_socket rw_stream_socket_perms;
+allow usbguard_t self:unix_stream_socket { connectto rw_stream_socket_perms };
 
 files_read_etc_files(usbguard_t)
 list_dirs_pattern(usbguard_t, usbguard_conf_t, usbguard_conf_t)
@@ -66,6 +66,8 @@ setattr_files_pattern(usbguard_t, usbguard_log_t, 
usbguard_log_t)
 dev_rw_sysfs(usbguard_t)
 
 kernel_read_kernel_sysctls(usbguard_t)
+kernel_read_system_state(usbguard_t)
+kernel_search_debugfs(usbguard_t)
 kernel_dontaudit_getattr_proc(usbguard_t)
 
 init_search_runtime(usbguard_t)
@@ -75,6 +77,11 @@ logging_send_syslog_msg(usbguard_t)
 
 miscfiles_read_localization(usbguard_t)
 
+optional_policy(`
+       dbus_system_bus_client(usbguard_t)
+       dbus_connect_system_bus(usbguard_t)
+')
+
 tunable_policy(`usbguard_user_modify_rule_files',`
        manage_files_pattern(usbguard_t, usbguard_conf_t, usbguard_rules_t)
 ')

diff --git a/policy/modules/system/userdomain.if 
b/policy/modules/system/userdomain.if
index 35198b4e1..75fc128b3 100644
--- a/policy/modules/system/userdomain.if
+++ b/policy/modules/system/userdomain.if
@@ -128,8 +128,10 @@ template(`userdom_base_user_template',`
        init_get_system_status($1_t)
 
        optional_policy(`
+               apt_dbus_chat($1_t)
                apt_read_cache($1_t)
                apt_read_db($1_t)
+               apt_watch_db($1_t)
        ')
 
        tunable_policy(`allow_execmem',`
@@ -1307,6 +1309,7 @@ template(`userdom_unpriv_user_template', `
        optional_policy(`
                tunable_policy(`usbguard_user_modify_rule_files',`
                        usbguard_stream_connect($1_t)
+                       usbguard_mmap_rw_tmpfs($1_t)
                ')
        ')
 ')

Reply via email to