diff --git a/access_vectors b/access_vectors index ccf70189be46425156ef38d946343c081a0cc55a..c38aa7b5f7376925ac68d259be59159ad86aa5b3 100644 --- a/access_vectors +++ b/access_vectors @@ -544,6 +544,30 @@ class binder transfer } +class netlink_iscsi_socket +inherits socket + +class netlink_fib_lookup_socket +inherits socket + +class netlink_connector_socket +inherits socket + +class netlink_netfilter_socket +inherits socket + +class netlink_generic_socket +inherits socket + +class netlink_scsitransport_socket +inherits socket + +class netlink_rdma_socket +inherits socket + +class netlink_crypto_socket +inherits socket + class property_service { set diff --git a/global_macros b/global_macros index 8d72868637d4a70db817eea2c7e81ccc1f8e66b2..e840d56272b13ef0e1408060c55cc48216ae85ed 100644 --- a/global_macros +++ b/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_firewall_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_ip6fw_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_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_firewall_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_ip6fw_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 }') 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 }') diff --git a/hostapd.te b/hostapd.te index 858c28645326a4bc74ac0aa2ebdce890f8afac67..204a0d9eb0156414cc49634057191f34d661d57a 100644 --- a/hostapd.te +++ b/hostapd.te @@ -6,6 +6,7 @@ net_domain(hostapd) allow hostapd self:capability { net_admin net_raw setuid setgid }; allow hostapd self:netlink_socket create_socket_perms; +allow hostapd self:netlink_generic_socket create_socket_perms; allow hostapd self:packet_socket create_socket_perms; allow hostapd self:netlink_route_socket nlmsg_write; diff --git a/netd.te b/netd.te index 9c37c85697558c18238ea184ba63400fd3a6ae87..51445fca90ad6a29e0efccb7065e9b6c1374993f 100644 --- a/netd.te +++ b/netd.te @@ -19,6 +19,8 @@ allow netd self:netlink_route_socket nlmsg_write; allow netd self:netlink_nflog_socket create_socket_perms; allow netd self:netlink_socket create_socket_perms; allow netd self:netlink_tcpdiag_socket { create_socket_perms nlmsg_read nlmsg_write }; +allow netd self:netlink_generic_socket create_socket_perms; +allow netd self:netlink_netfilter_socket create_socket_perms; allow netd shell_exec:file rx_file_perms; allow netd system_file:file x_file_perms; allow netd devpts:chr_file rw_file_perms; diff --git a/rild.te b/rild.te index 1183d4cdb2a5beda66e9b56a9a2f4e5406490959..e2856a31eac20b78307082badc42d3404b2e751f 100644 --- a/rild.te +++ b/rild.te @@ -38,6 +38,7 @@ allow rild tty_device:chr_file rw_file_perms; # Allow rild to create and use netlink sockets. allow rild self:netlink_socket create_socket_perms; +allow rild self:netlink_generic_socket create_socket_perms; allow rild self:netlink_kobject_uevent_socket create_socket_perms; # Access to wake locks diff --git a/security_classes b/security_classes index 7ea3a380cbd62c257e98cabd63825dec623854bd..680d3ddbc8a16e5ba02796093ac6bd346a6bd8fb 100644 --- a/security_classes +++ b/security_classes @@ -84,6 +84,16 @@ class tun_socket class binder +# Updated netlink classes for more recent netlink protocols. +class netlink_iscsi_socket +class netlink_fib_lookup_socket +class netlink_connector_socket +class netlink_netfilter_socket +class netlink_generic_socket +class netlink_scsitransport_socket +class netlink_rdma_socket +class netlink_crypto_socket + # Property service class property_service # userspace diff --git a/system_server.te b/system_server.te index fb5e94797704991b72d114cba9c9e187a166bac8..7602ec67527c9248a17f62b4b97f45a6557672ee 100644 --- a/system_server.te +++ b/system_server.te @@ -71,6 +71,7 @@ allow system_server self:netlink_kobject_uevent_socket create_socket_perms; # Use generic netlink sockets. allow system_server self:netlink_socket create_socket_perms; +allow system_server self:netlink_generic_socket create_socket_perms; # Use generic "sockets" where the address family is not known # to the kernel. diff --git a/tee.te b/tee.te index ab625dea954906a9165fec2e6b43fcbada59791d..8ea6b95bc7e47e01a5f6faa121e5dd9a05c72b30 100644 --- a/tee.te +++ b/tee.te @@ -12,3 +12,4 @@ allow tee tee_device:chr_file rw_file_perms; allow tee tee_data_file:dir rw_dir_perms; allow tee tee_data_file:file create_file_perms; allow tee self:netlink_socket create_socket_perms; +allow tee self:netlink_generic_socket create_socket_perms; diff --git a/wpa.te b/wpa.te index a562fb75b6ec0b2e8d4119635871504d206fac32..46d975b8ac48abf723aeceaf4d42a1bb6c3bc712 100644 --- a/wpa.te +++ b/wpa.te @@ -11,6 +11,7 @@ allow wpa self:capability { setuid net_admin setgid net_raw }; allow wpa cgroup:dir create_dir_perms; allow wpa self:netlink_route_socket nlmsg_write; allow wpa self:netlink_socket create_socket_perms; +allow wpa self:netlink_generic_socket create_socket_perms; allow wpa self:packet_socket create_socket_perms; allow wpa wifi_data_file:dir create_dir_perms; allow wpa wifi_data_file:file create_file_perms;