RPM

SELinux is preventing /usr/sbin/nscd access to a leaked /dev/null file descriptor.

Bug #633646 reported by Jeff Johnson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
RPM
New
Low
Unassigned
Fedora
Won't Fix
Medium

Bug Description

Tracker

Revision history for this message
In , Steve (steve-redhat-bugs) wrote :

Summary:

SELinux is preventing /usr/sbin/nscd access to a leaked /dev/null file
descriptor.

Detailed Description:

[nscd has a permissive type (nscd_t). This access was not denied.]

SELinux denied access requested by the nscd command. It looks like this is
either a leaked descriptor or nscd output was redirected to a file it is not
allowed to access. Leaks usually can be ignored since SELinux is just closing
the leak and reporting the error. The application does not use the descriptor,
so it will run properly. If this is a redirection, you will not get output in
the /dev/null. You should generate a bugzilla on selinux-policy, and it will get
routed to the appropriate package. You can safely ignore this avc.

Allowing Access:

You can generate a local policy module to allow this access - see FAQ
(http://docs.fedoraproject.org/selinux-faq-fc5/#id2961385)

Additional Information:

Source Context unconfined_u:system_r:nscd_t:s0-s0:c0.c1023
Target Context unconfined_u:object_r:device_t:s0
Target Objects /dev/null [ file ]
Source nscd
Source Path /usr/sbin/nscd
Port <Unknown>
Host (removed)
Source RPM Packages nscd-2.12-3
Target RPM Packages
Policy RPM selinux-policy-3.7.19-41.fc13
Selinux Enabled True
Policy Type targeted
Enforcing Mode Enforcing
Plugin Name leaks
Host Name (removed)
Platform Linux (removed) 2.6.33.6-147.2.4.fc13.i686.PAE #1 SMP
                              Fri Jul 23 17:21:06 UTC 2010 i686 i686
Alert Count 32
First Seen Sat 07 Aug 2010 02:59:13 PM PDT
Last Seen Sat 07 Aug 2010 03:01:13 PM PDT
Local ID ab9bee59-e966-4886-a1ad-7c3646e7cfbe
Line Numbers

Raw Audit Messages

node=(removed) type=AVC msg=audit(1281218473.990:210): avc: denied { write } for pid=4902 comm="nscd" path="/dev/null" dev=sda7 ino=169346 scontext=unconfined_u:system_r:nscd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:device_t:s0 tclass=file

node=(removed) type=SYSCALL msg=audit(1281218473.990:210): arch=40000003 syscall=11 success=yes exit=0 a0=80598b3 a1=bffb77b0 a2=bffb77c4 a3=bffb7904 items=0 ppid=4898 pid=4902 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="nscd" exe="/usr/sbin/nscd" subj=unconfined_u:system_r:nscd_t:s0-s0:c0.c1023 key=(null)

Hash String generated from leaks,nscd,nscd_t,device_t,file,write
audit2allow suggests:

#============= nscd_t ==============
allow nscd_t device_t:file write;

Revision history for this message
In , Steve (steve-redhat-bugs) wrote :

AFAICT, the first occurrence was during a massive update on Aug 7, 2010.

Snippet from /var/log/messages-20100808:
Aug 7 14:56:25 maple yum[4236]: Installed: bzip2-1.0.5-6.fc12.i686
Aug 7 14:56:26 maple yum[4236]: Installed: pcre-7.8-3.fc12.i686
Aug 7 14:56:27 maple setroubleshoot: SELinux is preventing /usr/sbin/groupadd access to a leaked /dev/null file descriptor. For complete SELinux messages. run sealert -l 351f77ca-8fef-4d62-a53d-aed11492d410
Aug 7 14:56:29 maple yum[4236]: Installed: grep-2.6.3-1.fc13.i686
Aug 7 14:56:33 maple yum[4236]: Installed: lua-5.1.4-4.fc12.i686

The context is now:
$ ls -Z /dev/null
crw-rw-rw-. root root system_u:object_r:null_device_t:s0 /dev/null

NB: This system was a clean F13 net install using all default settings for a Gnome desktop configuration on a laptop.

I can attach logs if needed.

Revision history for this message
In , Steve (steve-redhat-bugs) wrote :

Whoops! Those log messages say "Installed", not "Updated". I now remember doing an non-standard yum install to another partition in an experiment to try installing without anaconda.

# history | grep groupinstall
  147 yum groupinstall Base --installroot=`pwd` --releasever=13

The other partition was previously formatted and mounted.

Revision history for this message
In , Miroslav (miroslav-redhat-bugs) wrote :

Something was wrong (maybe udev problem) and /dev/null was mislabeled. Now it has right context and it will work.

Revision history for this message
In , Steve (steve-redhat-bugs) wrote :

(In reply to comment #3)
> Something was wrong (maybe udev problem) and /dev/null was mislabeled. Now it
> has right context and it will work.

I easily reproduced this bug as suggested in comment 2.

mkdir fake_root
cd fake_root
sudo yum groupinstall Base --installroot=`pwd` --releasever=13

The mislabelling is in fake_root/dev:

[stephent@walnut fake_root]$ ls -Z dev
-rw-r--r--. root root unconfined_u:object_r:device_t:s0 null
-rw-r--r--. root root unconfined_u:object_r:device_t:s0 stderr
[stephent@walnut fake_root]$ ls -l dev
total 4
-rw-r--r--. 1 root root 0 Aug 12 09:43 null
-rw-r--r--. 1 root root 45 Aug 12 09:43 stderr
[stephent@walnut fake_root]$

Snippet from /var/log/messages:
Aug 12 09:38:35 localhost yum[6293]: Installed: libacl-2.2.49-6.fc13.x86_64
Aug 12 09:38:36 localhost yum[6293]: Installed: 2:shadow-utils-4.1.4.2-8.fc13.x86_64
Aug 12 09:38:36 localhost kernel: type=1400 audit(1281631116.450:29492): avc: denied { write } for pid=6507 comm="groupadd" path="/dev/null" dev=dm-4 ino=4073123 scontext=unconfined_u:system_r:groupadd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:device_t:s0 tclass=file
Aug 12 09:38:37 localhost yum[6293]: Installed: 1:dbus-1.2.24-1.fc13.x86_64
Aug 12 09:38:37 localhost yum[6293]: Installed: 1:findutils-4.4.2-8.fc13.x86_64

Revision history for this message
In , Daniel (daniel-redhat-bugs) wrote :

I guess I would say this is a yum/rpm error. Although I am not sure how I would fix this. Rpm needs to be faked out that the chroot path is eliminated.

Revision history for this message
In , Steve (steve-redhat-bugs) wrote :

I may have narrowed this down a bit.
It looks like dev/null with the wrong security context is created when
device-mapper-libs is installed.

Procedure:

mkdir fake_root
cd fake_root

In a new terminal window run:
watch -n 1 'ls --lcontext dev 2>&1'

Start the install:
sudo yum install --installroot=`pwd` --releasever=13 device-mapper-libs

When it completes, dev/null exists:

$ ls --lcontext dev
total 0
-rw-r--r--. 1 unconfined_u:object_r:device_t:s0 root root 0 Aug 13 07:01 null

device-mapper-libs-1.02.44-1.fc13.x86_64

Revision history for this message
In , Daniel (daniel-redhat-bugs) wrote :

Just seems like a very strange context to get created. Wait it is created as a file rather then a device.

Revision history for this message
In , Daniel (daniel-redhat-bugs) wrote :

Maybe rpm and yum are working correctly but post install scripts are causing these files to get created as files.

Revision history for this message
In , Daniel (daniel-redhat-bugs) wrote :

mkdir -p fake_root/dev
sudo mount -o bind /dev fake_root/dev
cd fake_root
sudo yum groupinstall Base --installroot=`pwd` --releasever=13

Should work

Revision history for this message
In , Daniel (daniel-redhat-bugs) wrote :

This might be an example of where we would want yum/rpm to not put down labels, like with mock.

Revision history for this message
In , Steve (steve-redhat-bugs) wrote :

(In reply to comment #8)
> Maybe rpm and yum are working correctly but post install scripts are causing
> these files to get created as files.

In the chroot environment during the install, the "filesystem" package creates /dev, but /dev/null does not exist, so the first script that opens /dev/null could end up creating it as a regular file.

> Wait it is created as a file rather then a device.

They both are regular files:

[stephent@walnut fake_root]$ cat dev/stderr
The default plymouth plugin () doesn't exist
[stephent@walnut fake_root]$

Revision history for this message
In , Daniel (daniel-redhat-bugs) wrote :

Yes I figured this out.

Revision history for this message
Jeff Johnson (n3npq) wrote :

prereqs like /dev/null have never bee correct for bootstrapping.
parentdir deps help.

Changed in rpm:
importance: Undecided → Low
Revision history for this message
In , Bug (bug-redhat-bugs) wrote :

This message is a reminder that Fedora 13 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 13. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora
'version' of '13'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version prior to Fedora 13's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that
we may not be able to fix it before Fedora 13 is end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora please change the 'version' of this
bug to the applicable version. If you are unable to change the version,
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

The process we are following is described here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Revision history for this message
In , Bug (bug-redhat-bugs) wrote :

Fedora 13 changed to end-of-life (EOL) status on 2011-06-25. Fedora 13 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.

Changed in fedora:
importance: Unknown → Medium
status: Unknown → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.