[DSE-Dev] Bug#781779: selinux-policy-default: not possible to login via GUI when SELinux is set to enforcing

Andreas Florath andre at florath.net
Thu Apr 2 21:50:15 UTC 2015


Package: selinux-policy-default
Version: 2:2.20140421-9
Severity: grave
Justification: renders package unusable

Dear Maintainer,

after enabling SELinux it is not possible to use graphical login anymore.
Instead of the desktop the following message appears:
"Oh no! Something has gone wrong.
A problem has occurred and the system can't recover. All extensions have been
disabled as a precaution."
Beneath there is a 'Logout' button.

When setting 'setenforce 0' it is possible to login (again).

Because there are so many AVCs, I cannot name the root cause here.
Attached you can find the output of 'audit2allow --boot'.

I set the severity to grave because IMHO a lot of people use / will
use Debian as their desktop / laptop OS with graphical UI.  This is
not usable any more when SELinux is enabled using the current default
policy.

If I can support finding the root cause or providing a patch, please
drop me a note.

Kind regards

Andre


-- System Information:
Debian Release: 8.0
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages selinux-policy-default depends on:
ii  libpam-modules   1.1.8-3.1
ii  libselinux1      2.3-2
ii  libsepol1        2.3-2
ii  policycoreutils  2.3-1
ii  python           2.7.9-1
ii  selinux-utils    2.3-2

Versions of packages selinux-policy-default recommends:
ii  checkpolicy  2.3-1
ii  setools      3.3.8-3.1

Versions of packages selinux-policy-default suggests:
pn  logcheck        <none>
pn  syslog-summary  <none>

-- no debconf information

============================== 8< ==============================
# audit2allow --boot

#============= NetworkManager_t ==============
allow NetworkManager_t NetworkManager_initrc_exec_t:dir { read getattr open search };
allow NetworkManager_t init_var_run_t:dir read;
allow NetworkManager_t self:rawip_socket { write create setopt getattr };
allow NetworkManager_t systemd_logind_t:dbus send_msg;
allow NetworkManager_t systemd_logind_t:fd use;
allow NetworkManager_t systemd_logind_var_run_t:dir { read search };
allow NetworkManager_t systemd_logind_var_run_t:fifo_file write;
allow NetworkManager_t systemd_logind_var_run_t:file { read getattr open };

#============= alsa_t ==============

#!!!! The source type 'alsa_t' can write to a 'dir' of the following types:
# pulseaudio_home_t, alsa_tmp_t, alsa_var_lib_t

allow alsa_t var_run_t:dir { write create add_name setattr };

#!!!! The source type 'alsa_t' can write to a 'file' of the following types:
# pulseaudio_home_t, alsa_tmp_t, alsa_var_lib_t, alsa_lock_t, alsa_etc_rw_t, alsa_tmpfs_t, user_home_t

allow alsa_t var_run_t:file { read write create open lock };
allow alsa_t var_run_t:lnk_file create;
allow alsa_t xdm_t:process signull;
allow alsa_t xdm_tmpfs_t:file { read getattr unlink open };

#============= apmd_t ==============
allow apmd_t device_t:chr_file { read ioctl open };

#============= kernel_t ==============
allow kernel_t systemd_unit_file_t:service { status start };

#============= policykit_t ==============

#!!!! This avc can be allowed using one of the these booleans:
#     authlogin_nsswitch_use_ldap, global_ssp
allow policykit_t urandom_device_t:chr_file { read getattr open };

#============= rtkit_daemon_t ==============
allow rtkit_daemon_t xdm_t:process setsched;

#============= systemd_cgroups_t ==============
allow systemd_cgroups_t kernel_t:unix_dgram_socket sendto;
allow systemd_cgroups_t kernel_t:unix_stream_socket connectto;

#============= systemd_logind_t ==============
allow systemd_logind_t NetworkManager_t:dbus send_msg;

#!!!! The source type 'systemd_logind_t' can write to a 'dir' of the following types:
# var_auth_t, cgroup_t, user_tmp_t, udev_var_run_t, systemd_logind_var_run_t, systemd_logind_sessions_t

allow systemd_logind_t tmpfs_t:dir { write remove_name rmdir };
allow systemd_logind_t tmpfs_t:sock_file unlink;
allow systemd_logind_t user_tmpfs_t:dir read;
allow systemd_logind_t user_tmpfs_t:file getattr;

#!!!! The source type 'systemd_logind_t' can write to a 'dir' of the following types:
# var_auth_t, cgroup_t, user_tmp_t, udev_var_run_t, systemd_logind_var_run_t, systemd_logind_sessions_t

allow systemd_logind_t xdm_tmpfs_t:dir { write getattr rmdir read remove_name open };
allow systemd_logind_t xdm_tmpfs_t:file { getattr unlink };

#============= udev_t ==============
allow udev_t self:netlink_socket { write getattr setopt read bind create };

#============= unconfined_t ==============

#!!!! This avc can be allowed using one of the these booleans:
#     allow_execstack, allow_execmem
allow unconfined_t self:process execmem;

#============= xdm_t ==============
allow xdm_t init_t:system status;



More information about the SELinux-devel mailing list