Bug 669362 - enforcing MLS -- avc: denied { read } for ... comm="sh" path="/dev/kmsg" ...
Summary: enforcing MLS -- avc: denied { read } for ... comm="sh" path="/dev/kmsg" ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: selinux-policy
Version: 6.1
Hardware: All
OS: Linux
low
medium
Target Milestone: rc
: ---
Assignee: Miroslav Grepl
QA Contact: Milos Malik
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-01-13 13:34 UTC by Milos Malik
Modified: 2012-10-16 11:13 UTC (History)
2 users (show)

Fixed In Version: selinux-policy-3.7.19-67.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-05-19 11:57:22 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2011:0526 0 normal SHIPPED_LIVE selinux-policy bug fix and enhancement update 2011-05-19 09:37:41 UTC

Description Milos Malik 2011-01-13 13:34:08 UTC
Description of problem:

Version-Release number of selected component (if applicable):
selinux-policy-mls-3.7.19-63.el6.noarch
selinux-policy-3.7.19-63.el6.noarch
selinux-policy-minimum-3.7.19-63.el6.noarch
selinux-policy-targeted-3.7.19-63.el6.noarch
selinux-policy-doc-3.7.19-63.el6.noarch

How reproducible:
always (seen on 1 machine, appeared after each reboot)

Steps to Reproduce:
1. install MLS policy on a RHEL-6 machine
2. modify /etc/selinux/config so that the machine will start up with MLS policy
in enforcing mode
3. modify /boot/grub/grub.conf so that the machine will start up into
single-user mode
4. run 'touch /.autorelabel'
5. run 'reboot'
6. log in as root via console
7. run "dmesg | grep type="

Actual results:
type=2000 audit(1294907006.360:1): initialized
type=1403 audit(1294907008.605:2): policy loaded auid=4294967295 ses=4294967295
type=1400 audit(1294907009.326:3): avc:  denied  { read } for  pid=396 comm="sh" path="/dev/kmsg" dev=devtmpfs ino=857 scontext=system_u:system_r:initrc_t:s0-s15:c0.c1023 tcontext=system_u:object_r:kmsg_device_t:s15:c0.c1023 tclass=chr_file

Expected results:
no denials

Comment 1 Miroslav Grepl 2011-01-13 15:46:15 UTC
Any chance you get something on output of 

# ps -eZ | grep initrc

Comment 2 Daniel Walsh 2011-01-13 19:34:31 UTC
I think this is something happening on boot.

Notting do you know of anything during boot that would read /dev/kmsg?

Comment 3 Bill Nottingham 2011-01-13 19:47:27 UTC
Not in RHEL 6, no. systemd will in later releases.

Comment 4 Daniel Walsh 2011-01-13 19:57:31 UTC
Miroslav could this be one of the apps that were not labeled fsadm_t?

Comment 5 Milos Malik 2011-01-14 08:24:12 UTC
(In reply to comment #1)
> Any chance you get something on output of 
> 
> # ps -eZ | grep initrc

The output is empty.

Comment 6 Miroslav Grepl 2011-01-14 13:07:21 UTC
(In reply to comment #4)
> Miroslav could this be one of the apps that were not labeled fsadm_t?

Trying to find out. But we have

dev_write_kmsg(initrc_t)

so I think we could add

dev_read_kmsg(initrc_t)

Comment 7 Daniel Walsh 2011-01-14 14:22:14 UTC
This is probably a case where we should figure out which init script or program needs this access and give it to just that script rather then giving it to every init script.  But it might be like looking for a needle in a haystack.

Comment 9 Milos Malik 2011-01-14 16:08:03 UTC
If you change "yes" to "no" in the /etc/sysconfig/readahead file, the AVC disappears. 

READAHEAD="yes" --> AVC
READAHEAD="no"   --> no AVC

So the set of possible culprits is reduced now.

Comment 10 Daniel Walsh 2011-01-14 17:05:49 UTC
 grep kmsg -R /usr/share/dracut
./modules.d/99base/init:        mknod -m 0660 /dev/kmsg c 1 11
./modules.d/99base/dracut-lib.sh:    } > /dev/kmsg
./modules.d/99base/dracut-lib.sh:    echo "<4>dracut Warning: $@" > /dev/kmsg
./modules.d/99base/dracut-lib.sh:    echo "<6>dracut: $@" > /dev/kmsg
./modules.d/99base/loginit:[ -e /dev/kmsg ] && exec 5>/dev/kmsg || exec 5>/dev/null

 grep kmsg -R /lib/readahead
/lib/readahead/readahead-collect.sh:echo "<6>readahead-collector: starting" > /dev/kmsg
/lib/readahead/readahead-replay.sh:echo "<6>readahead: starting" > /dev/kmsg
/lib/readahead/readahead-sort.sh:echo "<6>readahead-collector: sorting" > /dev/kmsg
/lib/readahead/readahead-sort.sh:echo "<6>readahead-collector: finished" > /dev/kmsg

Lots of writes...

Comment 11 Daniel Walsh 2011-01-14 17:11:29 UTC
Miroslav lets add a dontaudit rule, since I don't think it really needs to read it, and we do not want random initrc_t apps from reading this data.

Comment 12 Miroslav Grepl 2011-01-20 12:08:30 UTC
Fixed in selinux-policy-3.7.19-67.el6

Comment 15 errata-xmlrpc 2011-05-19 11:57:22 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


Note You need to log in before you can comment on or make changes to this bug.