commit:     c0cd142f78e3bf2ed7a83595f3bbee985b00234a
Author:     Yi Zhao <yi.zhao <AT> windriver <DOT> com>
AuthorDate: Fri Aug 30 03:46:34 2024 +0000
Commit:     Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Sat Sep 21 22:28:29 2024 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=c0cd142f

devices: add label vsock_device_t for /dev/vsock

Vsock is a Linux socket family designed to allow communication between a
VM and its hypervisor. Add a new label vsock_device_t for vsock device.

Signed-off-by: Yi Zhao <yi.zhao <AT> windriver.com>
Signed-off-by: Jason Zaman <perfinion <AT> gentoo.org>

 policy/modules/kernel/devices.fc |  1 +
 policy/modules/kernel/devices.if | 54 ++++++++++++++++++++++++++++++++++++++++
 policy/modules/kernel/devices.te |  6 +++++
 3 files changed, 61 insertions(+)

diff --git a/policy/modules/kernel/devices.fc b/policy/modules/kernel/devices.fc
index fb3010308..5d7d2a4c1 100644
--- a/policy/modules/kernel/devices.fc
+++ b/policy/modules/kernel/devices.fc
@@ -134,6 +134,7 @@ ifdef(`distro_suse', `
 ')
 /dev/vbi.*             -c      gen_context(system_u:object_r:v4l_device_t,s0)
 /dev/vbox.*            -c      
gen_context(system_u:object_r:xserver_misc_device_t,s0)
+/dev/vsock             -c      gen_context(system_u:object_r:vsock_device_t,s0)
 /dev/vfio/.+           -c      gen_context(system_u:object_r:vfio_device_t,s0)
 /dev/vga_arbiter       -c      
gen_context(system_u:object_r:xserver_misc_device_t,s0)
 /dev/vhci                      -c      
gen_context(system_u:object_r:vhost_device_t,s0)

diff --git a/policy/modules/kernel/devices.if b/policy/modules/kernel/devices.if
index aabc1b8e7..930f164e9 100644
--- a/policy/modules/kernel/devices.if
+++ b/policy/modules/kernel/devices.if
@@ -5556,6 +5556,60 @@ interface(`dev_rwx_vmware',`
        allow $1 vmware_device_t:chr_file { execute map };
 ')
 
+########################################
+## <summary>
+##     Read the vsock device.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`dev_read_vsock',`
+       gen_require(`
+               type device_t, vsock_device_t;
+       ')
+
+       read_chr_files_pattern($1, device_t, vsock_device_t)
+')
+
+########################################
+## <summary>
+##     Write the vsock device.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`dev_write_vsock',`
+       gen_require(`
+               type device_t, vsock_device_t;
+       ')
+
+       write_chr_files_pattern($1, device_t, vsock_device_t)
+')
+
+########################################
+## <summary>
+##     Read and write the vsock device.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`dev_rw_vsock',`
+       gen_require(`
+               type device_t, vsock_device_t;
+       ')
+
+       rw_chr_files_pattern($1, device_t, vsock_device_t)
+')
+
 ########################################
 ## <summary>
 ##     Read from watchdog devices.

diff --git a/policy/modules/kernel/devices.te b/policy/modules/kernel/devices.te
index c06a77ade..255a30b09 100644
--- a/policy/modules/kernel/devices.te
+++ b/policy/modules/kernel/devices.te
@@ -402,6 +402,12 @@ dev_node(vhost_device_t)
 type vmware_device_t;
 dev_node(vmware_device_t)
 
+#
+# vsock_device_t is the type for /dev/vsock
+#
+type vsock_device_t;
+dev_node(vsock_device_t)
+
 type watchdog_device_t;
 dev_node(watchdog_device_t)
 

Reply via email to