From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5E0A8138335 for ; Sun, 24 Jun 2018 08:46:58 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 1A13FE0995; Sun, 24 Jun 2018 08:46:50 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id A4D76E0995 for ; Sun, 24 Jun 2018 08:46:49 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id BAAA7335CAB for ; Sun, 24 Jun 2018 08:46:47 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 7C5D633C for ; Sun, 24 Jun 2018 08:46:44 +0000 (UTC) From: "Jason Zaman" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jason Zaman" Message-ID: <1529159745.488f7b482a62bb25f656d38387ed44ff28c01343.perfinion@gentoo> Subject: [gentoo-commits] proj/hardened-refpolicy:master commit in: policy/modules/contrib/ X-VCS-Repository: proj/hardened-refpolicy X-VCS-Files: policy/modules/contrib/mozilla.fc policy/modules/contrib/mozilla.te X-VCS-Directories: policy/modules/contrib/ X-VCS-Committer: perfinion X-VCS-Committer-Name: Jason Zaman X-VCS-Revision: 488f7b482a62bb25f656d38387ed44ff28c01343 X-VCS-Branch: master Date: Sun, 24 Jun 2018 08:46:44 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: dc676795-520e-455e-9bfe-76427ca127df X-Archives-Hash: 3b8b39301e9ce48e4cc9475da7c03376 commit: 488f7b482a62bb25f656d38387ed44ff28c01343 Author: Jason Zaman perfinion com> AuthorDate: Fri Jun 15 16:54:29 2018 +0000 Commit: Jason Zaman gentoo org> CommitDate: Sat Jun 16 14:35:45 2018 +0000 URL: https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=488f7b48 mozilla: remove gentoo specific rules that are now upstream policy/modules/contrib/mozilla.fc | 21 ++++-- policy/modules/contrib/mozilla.te | 143 +++++++++++++++++++++----------------- 2 files changed, 95 insertions(+), 69 deletions(-) diff --git a/policy/modules/contrib/mozilla.fc b/policy/modules/contrib/mozilla.fc index 867ba3e8..15aa39b3 100644 --- a/policy/modules/contrib/mozilla.fc +++ b/policy/modules/contrib/mozilla.fc @@ -6,6 +6,14 @@ HOME_DIR/\.netscape(/.*)? gen_context(system_u:object_r:mozilla_home_t,s0) HOME_DIR/\.phoenix(/.*)? gen_context(system_u:object_r:mozilla_home_t,s0) HOME_DIR/\.vimperator.* gen_context(system_u:object_r:mozilla_home_t,s0) +HOME_DIR/\.adobe(/.*)? gen_context(system_u:object_r:mozilla_plugin_home_t,s0) +HOME_DIR/\.gnash(/.*)? gen_context(system_u:object_r:mozilla_plugin_home_t,s0) +HOME_DIR/\.gcjwebplugin(/.*)? gen_context(system_u:object_r:mozilla_plugin_home_t,s0) +HOME_DIR/\.icedteaplugin(/.*)? gen_context(system_u:object_r:mozilla_plugin_home_t,s0) +HOME_DIR/\.spicec(/.*)? gen_context(system_u:object_r:mozilla_plugin_home_t,s0) +HOME_DIR/\.ICAClient(/.*)? gen_context(system_u:object_r:mozilla_plugin_home_t,s0) +HOME_DIR/zimbrauserdata(/.*)? gen_context(system_u:object_r:mozilla_plugin_home_t,s0) + /usr/bin/epiphany -- gen_context(system_u:object_r:mozilla_exec_t,s0) /usr/bin/epiphany-bin -- gen_context(system_u:object_r:mozilla_exec_t,s0) /usr/bin/mozilla -- gen_context(system_u:object_r:mozilla_exec_t,s0) @@ -17,18 +25,19 @@ HOME_DIR/\.vimperator.* gen_context(system_u:object_r:mozilla_home_t,s0) /usr/bin/nspluginscan -- gen_context(system_u:object_r:mozilla_plugin_exec_t,s0) /usr/bin/nspluginviewer -- gen_context(system_u:object_r:mozilla_plugin_exec_t,s0) -/usr/lib/[^/]*firefox[^/]*/firefox -- gen_context(system_u:object_r:mozilla_exec_t,s0) -/usr/lib/[^/]*firefox[^/]*/firefox-bin -- gen_context(system_u:object_r:mozilla_exec_t,s0) -/usr/lib/firefox[^/]*/mozilla-.* -- gen_context(system_u:object_r:mozilla_exec_t,s0) +/usr/lib/[^/]*firefox[^/]*/firefox -- gen_context(system_u:object_r:mozilla_exec_t,s0) +/usr/lib/[^/]*firefox[^/]*/firefox-bin -- gen_context(system_u:object_r:mozilla_exec_t,s0) +/usr/lib/firefox[^/]*/firefox-.* -- gen_context(system_u:object_r:mozilla_exec_t,s0) +/usr/lib/firefox[^/]*/mozilla-.* -- gen_context(system_u:object_r:mozilla_exec_t,s0) /usr/lib/galeon/galeon -- gen_context(system_u:object_r:mozilla_exec_t,s0) /usr/lib/iceweasel/iceweasel -- gen_context(system_u:object_r:mozilla_exec_t,s0) /usr/lib/iceweasel/plugin-container -- gen_context(system_u:object_r:mozilla_plugin_exec_t,s0) /usr/lib/mozilla[^/]*/reg.+ -- gen_context(system_u:object_r:mozilla_exec_t,s0) -/usr/lib/mozilla[^/]*/firefox-.* -- gen_context(system_u:object_r:mozilla_exec_t,s0) -/usr/lib/mozilla[^/]*/mozilla-.* -- gen_context(system_u:object_r:mozilla_exec_t,s0) +/usr/lib/mozilla[^/]*/firefox-.* -- gen_context(system_u:object_r:mozilla_exec_t,s0) +/usr/lib/mozilla[^/]*/mozilla-.* -- gen_context(system_u:object_r:mozilla_exec_t,s0) /usr/lib/mozilla/plugins-wrapped(/.*)? gen_context(system_u:object_r:mozilla_plugin_rw_t,s0) /usr/lib/netscape/base-4/wrapper -- gen_context(system_u:object_r:mozilla_exec_t,s0) -/usr/lib/netscape/.+/communicator/communicator-smotif\.real -- gen_context(system_u:object_r:mozilla_exec_t,s0) +/usr/lib/netscape/.+/communicator/communicator-smotif\.real -- gen_context(system_u:object_r:mozilla_exec_t,s0) /usr/lib/nspluginwrapper/npviewer.bin -- gen_context(system_u:object_r:mozilla_plugin_exec_t,s0) /usr/lib/nspluginwrapper/plugin-config -- gen_context(system_u:object_r:mozilla_plugin_config_exec_t,s0) /usr/lib/xulrunner[^/]*/plugin-container -- gen_context(system_u:object_r:mozilla_plugin_exec_t,s0) diff --git a/policy/modules/contrib/mozilla.te b/policy/modules/contrib/mozilla.te index 5a0a0a5b..807d3431 100644 --- a/policy/modules/contrib/mozilla.te +++ b/policy/modules/contrib/mozilla.te @@ -13,19 +13,6 @@ policy_module(mozilla, 2.13.2) ## gen_tunable(mozilla_execstack, false) -## -##

-## Allow mozilla to use java plugins -##

-##

-## Some plugins use named pipes inside temporary directories created -## by the browser to communicate with the java process. If other browsers -## need to use java plugins as well, they will get search privileges within -## the temporary directories of mozilla -##

-##
-gen_tunable(mozilla_use_java, false) - attribute_role mozilla_roles; attribute_role mozilla_plugin_roles; attribute_role mozilla_plugin_config_roles; @@ -60,6 +47,10 @@ userdom_user_tmp_file(mozilla_plugin_tmp_t) type mozilla_plugin_tmpfs_t; userdom_user_tmpfs_file(mozilla_plugin_tmpfs_t) +optional_policy(` + pulseaudio_tmpfs_content(mozilla_plugin_tmpfs_t) +') + type mozilla_plugin_rw_t; files_type(mozilla_plugin_rw_t) @@ -76,6 +67,10 @@ typealias mozilla_tmpfs_t alias { user_mozilla_tmpfs_t staff_mozilla_tmpfs_t sys typealias mozilla_tmpfs_t alias { auditadm_mozilla_tmpfs_t secadm_mozilla_tmpfs_t }; userdom_user_tmpfs_file(mozilla_tmpfs_t) +optional_policy(` + pulseaudio_tmpfs_content(mozilla_tmpfs_t) +') + type mozilla_xdg_cache_t; xdg_cache_content(mozilla_xdg_cache_t) @@ -128,6 +123,8 @@ manage_files_pattern(mozilla_t, mozilla_xdg_cache_t, mozilla_xdg_cache_t) manage_dirs_pattern(mozilla_t, mozilla_xdg_cache_t, mozilla_xdg_cache_t) xdg_cache_filetrans(mozilla_t, mozilla_xdg_cache_t, dir, "mozilla") +can_exec(mozilla_t, { mozilla_exec_t mozilla_plugin_rw_t mozilla_plugin_home_t }) + kernel_read_kernel_sysctls(mozilla_t) kernel_read_network_state(mozilla_t) kernel_read_system_state(mozilla_t) @@ -207,7 +204,13 @@ miscfiles_dontaudit_setattr_fonts_cache_dirs(mozilla_t) userdom_use_user_ptys(mozilla_t) +userdom_manage_user_tmp_dirs(mozilla_t) +userdom_manage_user_tmp_files(mozilla_t) + userdom_user_content_access_template(mozilla, { mozilla_t mozilla_plugin_t }) +userdom_user_home_dir_filetrans_user_home_content(mozilla_t, { dir file }) + +userdom_write_user_tmp_sockets(mozilla_t) mozilla_run_plugin(mozilla_t, mozilla_roles) mozilla_run_plugin_config(mozilla_t, mozilla_roles) @@ -220,6 +223,17 @@ xserver_user_x_domain_template(mozilla, mozilla_t, mozilla_tmpfs_t) xserver_dontaudit_read_xdm_tmp_files(mozilla_t) xserver_dontaudit_getattr_xdm_tmp_sockets(mozilla_t) +ifndef(`enable_mls',` + fs_list_dos(mozilla_t) + fs_read_dos_files(mozilla_t) + + fs_search_removable(mozilla_t) + fs_read_removable_files(mozilla_t) + fs_read_removable_symlinks(mozilla_t) + + fs_read_iso9660_files(mozilla_t) +') + tunable_policy(`allow_execmem',` allow mozilla_t self:process execmem; ') @@ -292,6 +306,13 @@ optional_policy(` gnome_home_filetrans_gnome_home(mozilla_t, dir, ".gnome2_private") ') +optional_policy(` + java_exec(mozilla_t) + java_manage_generic_home_content(mozilla_t) + java_manage_java_tmp(mozilla_t) + java_home_filetrans_java_home(mozilla_t, dir, ".java") +') + optional_policy(` lpd_run_lpr(mozilla_t, mozilla_roles) ') @@ -312,7 +333,6 @@ optional_policy(` ') optional_policy(` - java_manage_java_tmp(mozilla_t) thunderbird_domtrans(mozilla_t) ') @@ -345,6 +365,15 @@ userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_home_t, dir, ".mozilla userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_home_t, dir, ".netscape") userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_home_t, dir, ".phoenix") +userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_plugin_home_t, dir, ".adobe") +userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_plugin_home_t, dir, ".macromedia") +userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_plugin_home_t, dir, ".gnash") +userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_plugin_home_t, dir, ".gcjwebplugin") +userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_plugin_home_t, dir, ".icedteaplugin") +userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_plugin_home_t, dir, ".spicec") +userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_plugin_home_t, dir, ".ICAClient") +userdom_user_home_dir_filetrans(mozilla_plugin_t, mozilla_plugin_home_t, dir, "zimbrauserdata") + filetrans_pattern(mozilla_plugin_t, mozilla_home_t, mozilla_plugin_home_t, dir, "plugins") manage_dirs_pattern(mozilla_plugin_t, mozilla_plugin_tmp_t, mozilla_plugin_tmp_t) @@ -381,6 +410,8 @@ corecmd_exec_shell(mozilla_plugin_t) corenet_all_recvfrom_netlabel(mozilla_plugin_t) corenet_all_recvfrom_unlabeled(mozilla_plugin_t) +corenet_tcp_sendrecv_generic_if(mozilla_plugin_t) +corenet_tcp_sendrecv_generic_node(mozilla_plugin_t) corenet_sendrecv_asterisk_client_packets(mozilla_plugin_t) corenet_tcp_connect_asterisk_port(mozilla_plugin_t) @@ -458,6 +489,7 @@ dev_dontaudit_getattr_all_chr_files(mozilla_plugin_t) domain_use_interactive_fds(mozilla_plugin_t) domain_dontaudit_read_all_domains_state(mozilla_plugin_t) +files_exec_usr_files(mozilla_plugin_t) files_list_mnt(mozilla_plugin_t) files_read_config_files(mozilla_plugin_t) files_read_usr_files(mozilla_plugin_t) @@ -470,16 +502,43 @@ fs_search_auto_mountpoints(mozilla_plugin_t) term_getattr_all_ttys(mozilla_plugin_t) term_getattr_all_ptys(mozilla_plugin_t) +application_exec(mozilla_plugin_t) + auth_use_nsswitch(mozilla_plugin_t) +libs_exec_ld_so(mozilla_plugin_t) +libs_exec_lib_files(mozilla_plugin_t) + logging_send_syslog_msg(mozilla_plugin_t) miscfiles_read_localization(mozilla_plugin_t) miscfiles_read_fonts(mozilla_plugin_t) miscfiles_read_generic_certs(mozilla_plugin_t) +miscfiles_dontaudit_setattr_fonts_dirs(mozilla_plugin_t) +miscfiles_dontaudit_setattr_fonts_cache_dirs(mozilla_plugin_t) + +userdom_manage_user_tmp_dirs(mozilla_plugin_t) +userdom_manage_user_tmp_files(mozilla_plugin_t) + +userdom_user_home_dir_filetrans_user_home_content(mozilla_plugin_t, { dir file }) + +userdom_write_user_tmp_sockets(mozilla_plugin_t) + +userdom_dontaudit_use_user_terminals(mozilla_plugin_t) xdg_read_config_files(mozilla_plugin_t) +ifndef(`enable_mls',` + fs_list_dos(mozilla_plugin_t) + fs_read_dos_files(mozilla_plugin_t) + + fs_search_removable(mozilla_plugin_t) + fs_read_removable_files(mozilla_plugin_t) + fs_read_removable_symlinks(mozilla_plugin_t) + + fs_read_iso9660_files(mozilla_plugin_t) +') + tunable_policy(`allow_execmem',` allow mozilla_plugin_t self:process execmem; ') @@ -500,6 +559,11 @@ tunable_policy(`use_samba_home_dirs',` fs_manage_cifs_symlinks(mozilla_plugin_t) ') +optional_policy(` + alsa_read_config(mozilla_plugin_t) + alsa_read_home_files(mozilla_plugin_t) +') + optional_policy(` automount_dontaudit_getattr_tmp_dirs(mozilla_plugin_t) ') @@ -671,24 +735,17 @@ gen_tunable(mozilla_bind_all_unreserved_ports, false) ## gen_tunable(mozilla_plugin_connect_all_unreserved, false) - type mozilla_xdg_cache_t; - xdg_cache_home_content(mozilla_xdg_cache_t) - ##################### # # Mozilla policy # - allow mozilla_t mozilla_exec_t:file { execute_no_trans }; allow mozilla_t mozilla_plugin_t:process { rlimitinh siginh noatsecure }; allow mozilla_t self:process execmem; # Startup of firefox (otherwise immediately killed) manage_fifo_files_pattern(mozilla_t, mozilla_tmp_t, mozilla_tmp_t) - manage_files_pattern(mozilla_t, mozilla_xdg_cache_t, mozilla_xdg_cache_t) - manage_dirs_pattern(mozilla_t, mozilla_xdg_cache_t, mozilla_xdg_cache_t) allow mozilla_t mozilla_xdg_cache_t:file map; - xdg_cache_home_filetrans(mozilla_t, mozilla_xdg_cache_t, dir, "mozilla") corenet_dontaudit_tcp_bind_generic_port(mozilla_t) corenet_dontaudit_tcp_sendrecv_generic_port(mozilla_t) @@ -702,17 +759,6 @@ gen_tunable(mozilla_plugin_connect_all_unreserved, false) # This deprecates userdom_use_user_ptys(mozilla_t) mentioned earlier userdom_use_user_terminals(mozilla_t) - xdg_manage_downloads_home(mozilla_t) - xdg_read_config_home_files(mozilla_t) - xdg_read_data_home_files(mozilla_t) - - #xserver_common_x_domain_template(mozilla_t, mozilla_tmpfs_t) is this - #not better than user_x_domain_template ? - - # main refpolicy does not make this distinction anymore - # (allows manage rights automatically) - userdom_user_content_access_template(mozilla, { mozilla_t mozilla_plugin_t }) - tunable_policy(`mozilla_bind_all_unreserved_ports',` corenet_sendrecv_all_server_packets(mozilla_t) corenet_tcp_bind_all_unreserved_ports(mozilla_t) @@ -720,32 +766,14 @@ gen_tunable(mozilla_plugin_connect_all_unreserved, false) ') optional_policy(` - tunable_policy(`mozilla_use_java',` - #java_noatsecure_domtrans(mozilla_t) - # refpolicy method below, but we might want to introduce - # specific domains for this (like mozilla_java_t)? TODO - java_exec(mozilla_t) - java_manage_generic_home_content(mozilla_t) - ') - - java_home_filetrans_java_home(mozilla_t, dir, ".java") - - # Cannot handle optional_policy within tunable_policy - optional_policy(` - tunable_policy(`mozilla_use_java',` - chromium_tmp_filetrans(mozilla_t, mozilla_tmp_t, fifo_file) - ') - ') + # was in java tunable, upstream added unconditionally + chromium_tmp_filetrans(mozilla_t, mozilla_tmp_t, fifo_file) ') optional_policy(` nscd_socket_use(mozilla_t) ') - optional_policy(` - pulseaudio_client_domain(mozilla_t, mozilla_tmpfs_t) - ') - ifdef(`use_alsa',` optional_policy(` # HTML5 support is built-in (no plugin) - bug 464398 @@ -762,8 +790,6 @@ gen_tunable(mozilla_plugin_connect_all_unreserved, false) allow mozilla_plugin_t self:udp_socket create_socket_perms; allow mozilla_plugin_t self:process execmem; # Needed for flash plugin - read_files_pattern(mozilla_plugin_t, mozilla_home_t, mozilla_home_t) - # Stupid google talk plugin runs find against /etc files_dontaudit_getattr_all_dirs(mozilla_plugin_t) @@ -771,14 +797,9 @@ gen_tunable(mozilla_plugin_connect_all_unreserved, false) corenet_tcp_connect_pulseaudio_port(mozilla_plugin_t) corenet_tcp_sendrecv_pulseaudio_port(mozilla_plugin_t) - miscfiles_dontaudit_setattr_fonts_cache_dirs(mozilla_plugin_t) - miscfiles_dontaudit_setattr_fonts_dirs(mozilla_plugin_t) - userdom_dontaudit_use_user_terminals(mozilla_plugin_t) userdom_rw_user_tmpfs_files(mozilla_plugin_t) - xdg_read_config_home_files(mozilla_plugin_t) - xserver_user_x_domain_template(mozilla_plugin, mozilla_plugin_t, mozilla_plugin_tmpfs_t) tunable_policy(`mozilla_plugin_connect_all_unreserved', ` @@ -800,10 +821,6 @@ gen_tunable(mozilla_plugin_connect_all_unreserved, false) googletalk_rw_inherited_plugin_unix_stream_sockets(mozilla_plugin_t) ') - optional_policy(` - pulseaudio_client_domain(mozilla_plugin_t, mozilla_plugin_tmpfs_t) - ') - ifdef(`use_alsa',` optional_policy(` alsa_domain(mozilla_plugin_t, mozilla_plugin_tmpfs_t)