Bug 663054

Summary: user_ping boolean not working
Product: Red Hat Enterprise Linux 6 Reporter: David Egts <degts>
Component: selinux-policyAssignee: Miroslav Grepl <mgrepl>
Status: CLOSED ERRATA QA Contact: Milos Malik <mmalik>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: dwalsh, mmalik
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: selinux-policy-3.7.19-60.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-05-19 11:57:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description David Egts 2010-12-14 15:03:46 UTC
Description of problem:

user_u confined users should be allowed to ping if the user_ping boolean is enabled.  The boolean is in the SELinux policy, but user_u confined users cannot ping even if it is enabled.


Version-Release number of selected component (if applicable): selinux-policy-3.7.19-54.el6_0.3.noarch


How reproducible: 100%


Steps to Reproduce:
1. # yum -y install policycoreutils-python
2. # useradd -Z user_u joe_user && echo redhat | passwd --stdin joe_user
3. # setsebool -P user_ping 1
4. Log in as joe_user.
5. % ping localhost
  
Actual results:

AVC denial.

# getsebool user_ping
user_ping --> on
# tail -4 /var/log/audit/audit.log | audit2allow


#============= user_t ==============
allow user_t self:capability setuid;
allow user_t self:rawip_socket create;


~~~
type=AVC msg=audit(1292273650.392:24629): avc:  denied  { create } for  pid=28941 comm="ping" scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=rawip_socket
type=SYSCALL msg=audit(1292273650.392:24629): arch=c000003e syscall=41 success=no exit=-13 a0=2 a1=3 a2=1 a3=c items=0 ppid=28917 pid=28941 auid=504 uid=504 gid=504 euid=0 suid=0 fsuid=0 egid=504 sgid=504 fsgid=504 tty=pts1 ses=45 comm="ping" exe="/bin/ping" subj=user_u:user_r:user_t:s0 key=(null)
type=AVC msg=audit(1292273650.393:24630): avc:  denied  { setuid } for  pid=28941 comm="ping" capability=7  scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=capability
type=SYSCALL msg=audit(1292273650.393:24630): arch=c000003e syscall=105 success=yes exit=0 a0=1f8 a1=d a2=609ce8 a3=c items=0 ppid=28917 pid=28941 auid=504 uid=504 gid=504 euid=504 suid=0 fsuid=504 egid=504 sgid=504 fsgid=504 tty=pts1 ses=45 comm="ping" exe="/bin/ping" subj=user_u:user_r:user_t:s0 key=(null)
~~~


Expected results:

user_u confine user can ping if boolean is enabled.

Comment 2 Milos Malik 2010-12-15 08:24:39 UTC
Another reproducer:

$ id -Z
user_u:user_r:user_t:s0
$ getsebool -a | grep ping
user_ping --> on
$ ping6 ::1
ping: icmp open socket: Permission denied
$ echo $?
2

Comment 3 Miroslav Grepl 2010-12-20 18:04:11 UTC
Fixed in selinux-policy-3.7.19-60.el6

Comment 6 errata-xmlrpc 2011-05-19 11:57:13 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2011-0526.html