From 2be9799bcc21863de48925b1eff55185be168696 Mon Sep 17 00:00:00 2001 From: Stephen Smalley <sds@tycho.nsa.gov> Date: Wed, 17 May 2017 12:06:49 -0400 Subject: [PATCH] Define smc_socket security class. Linux kernel commit da69a5306ab9 ("selinux: support distinctions among all network address families") triggers a build error if a new address family is added without defining a corresponding SELinux security class. As a result, the smc_socket class was added to the kernel to resolve a build failure as part of merge commit 3051bf36c25d that introduced AF_SMC circa Linux 4.11. Define this security class and its access vector, add it to the socket_class_set macro, and exclude it from webview_zygote like other socket classes. Test: Policy builds Change-Id: Idbb8139bb09c6d1c47f1a76bd10f4ce1e9d939cb Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov> --- private/access_vectors | 3 +++ private/security_classes | 1 + private/webview_zygote.te | 2 +- public/global_macros | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/private/access_vectors b/private/access_vectors index 0e2cf21e4..ad4624d31 100644 --- a/private/access_vectors +++ b/private/access_vectors @@ -657,6 +657,9 @@ inherits socket class qipcrtr_socket inherits socket +class smc_socket +inherits socket + class property_service { set diff --git a/private/security_classes b/private/security_classes index a202c5db6..ae16e549b 100644 --- a/private/security_classes +++ b/private/security_classes @@ -127,6 +127,7 @@ class nfc_socket class vsock_socket class kcm_socket class qipcrtr_socket +class smc_socket # Property service class property_service # userspace diff --git a/private/webview_zygote.te b/private/webview_zygote.te index b2a19519f..1f0d23bb2 100644 --- a/private/webview_zygote.te +++ b/private/webview_zygote.te @@ -109,7 +109,7 @@ neverallow webview_zygote domain:{ x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket - alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket + alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket } *; # Do not allow access to Bluetooth-related system properties. diff --git a/public/global_macros b/public/global_macros index a61ffbc42..4ea8dc3ba 100644 --- a/public/global_macros +++ b/public/global_macros @@ -8,7 +8,7 @@ define(`notdevfile_class_set', `{ file lnk_file sock_file fifo_file }') define(`file_class_set', `{ devfile_class_set notdevfile_class_set }') define(`dir_file_class_set', `{ dir file_class_set }') -define(`socket_class_set', `{ socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket }') +define(`socket_class_set', `{ socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket }') define(`dgram_socket_class_set', `{ udp_socket unix_dgram_socket }') define(`stream_socket_class_set', `{ tcp_socket unix_stream_socket }') define(`unpriv_socket_class_set', `{ tcp_socket udp_socket unix_stream_socket unix_dgram_socket }') -- GitLab