RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1393013 - SELinux is preventing /usr/bin/perl from read access on the file unix.
Summary: SELinux is preventing /usr/bin/perl from read access on the file unix.
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: selinux-policy
Version: 7.2
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: rc
: ---
Assignee: Lukas Vrabec
QA Contact: Milos Malik
URL:
Whiteboard:
Depends On:
Blocks: 1393066
TreeView+ depends on / blocked
 
Reported: 2016-11-08 17:08 UTC by Brian J. Murrell
Modified: 2017-10-12 12:20 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-10-12 12:17:01 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Brian J. Murrell 2016-11-08 17:08:26 UTC
SELinux is preventing /usr/bin/perl from read access on the file unix.

*****  Plugin catchall (100. confidence) suggests   **************************

If you believe that perl should be allowed read access on the unix file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep sa-update /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp


Additional Information:
Source Context                system_u:system_r:spamd_update_t:s0-s0:c0.c1023
Target Context                system_u:object_r:proc_net_t:s0
Target Objects                unix [ file ]
Source                        sa-update
Source Path                   /usr/bin/perl
Port                          <Unknown>
Host                          server.interlinx.bc.ca
Source RPM Packages           curl-7.29.0-25.el7.x86_64
Target RPM Packages           
Policy RPM                    selinux-policy-3.13.1-60.el7_2.9.noarch
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Host Name                     server.interlinx.bc.ca
Platform                      Linux server.interlinx.bc.ca
                              3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24
                              16:09:20 UTC 2016 x86_64 x86_64
Alert Count                   29
First Seen                    2016-10-27 04:10:05 EDT
Last Seen                     2016-11-08 04:58:26 EST
Local ID                      eb43fe5b-eb64-4477-8945-3a20ee72adf8

Raw Audit Messages
type=AVC msg=audit(1478599106.67:59249): avc:  denied  { read } for  pid=14648 comm="curl" name="unix" dev="proc" ino=4026532002 scontext=system_u:system_r:spamd_update_t:s0-s0:c0.c1023 tcontext=system_u:object_r:proc_net_t:s0 tclass=file


type=SYSCALL msg=audit(1478599106.67:59249): arch=x86_64 syscall=access success=no exit=EACCES a0=7f8773f7b7f0 a1=4 a2=7f8773f7b7fe a3=3 items=0 ppid=14631 pid=14648 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=6575 comm=curl exe=/usr/bin/curl subj=system_u:system_r:spamd_update_t:s0-s0:c0.c1023 key=(null)

Hash: sa-update,spamd_update_t,proc_net_t,file,read

This would presumably be SpamAssassin updating it's spam signature database.

Comment 1 Milos Malik 2016-11-09 06:40:57 UTC
Hi Brian, bugs 1393013, 1393015, 1393020, 1393030 have most likely the same cause. Unfortunately, I don't know it. I would appreciate if you could help me find it. Thanks for the report.

Comment 3 Brian J. Murrell 2016-11-10 15:03:15 UTC
So, this is what is happening I believe, at least in this case:

13191 open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 9
13191 fstat(9, {st_mode=S_IFREG|0644, st_size=149, ...}) = 0
13191 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa417261000
13191 read(9, "# Generated by NetworkManager\nse"..., 1024) = 149
13191 access("/proc/net", R_OK)         = 0
13191 access("/proc/net/unix", R_OK)    = 0
13191 socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 10
13191 ioctl(10, SIOCGIFINDEX, {ifr_name="enp1s7", ifr_index=2}) = 0
13191 close(10)                         = 0
13191 read(9, "", 1024)                 = 0
13191 close(9)                          = 0

It's that access("/proc/net/unix", R_OK) that is causing the AVC.  It is worth noting that after allowing that, a new AVC comes up:

SELinux is preventing /usr/bin/perl from create access on the unix_dgram_socket Unknown.

*****  Plugin catchall (100. confidence) suggests   **************************

If you believe that perl should be allowed create access on the Unknown unix_dgram_socket by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep sa-update /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp


Additional Information:
Source Context                system_u:system_r:spamd_update_t:s0-s0:c0.c1023
Target Context                system_u:system_r:spamd_update_t:s0-s0:c0.c1023
Target Objects                Unknown [ unix_dgram_socket ]
Source                        sa-update
Source Path                   /usr/bin/perl
Port                          <Unknown>
Host                          server.interlinx.bc.ca
Source RPM Packages           perl-5.16.3-286.el7.x86_64
Target RPM Packages           
Policy RPM                    selinux-policy-3.13.1-60.el7_2.9.noarch
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Host Name                     server.interlinx.bc.ca
Platform                      Linux server.interlinx.bc.ca
                              3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24
                              16:09:20 UTC 2016 x86_64 x86_64
Alert Count                   17
First Seen                    2016-11-09 04:10:04 EST
Last Seen                     2016-11-10 09:51:04 EST
Local ID                      5ed92169-a7df-4b7e-ae1e-f0bf8a9906c4

Raw Audit Messages
type=AVC msg=audit(1478789464.291:68659): avc:  denied  { create } for  pid=13148 comm="sa-update" scontext=system_u:system_r:spamd_update_t:s0-s0:c0.c1023 tcontext=system_u:system_r:spamd_update_t:s0-s0:c0.c1023 tclass=unix_dgram_socket


type=SYSCALL msg=audit(1478789464.291:68659): arch=x86_64 syscall=socket success=no exit=EACCES a0=1 a1=80002 a2=0 a3=3 items=0 ppid=13140 pid=13148 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=7854 comm=sa-update exe=/usr/bin/perl subj=system_u:system_r:spamd_update_t:s0-s0:c0.c1023 key=(null)

Hash: sa-update,spamd_update_t,spamd_update_t,unix_dgram_socket,create

Which is clearly the socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) right afterwards.

Why all of these processes are following this pattern of wanting access to /proc/net/unix "all of a sudden", I am not quite sure.

Comment 7 Lukas Vrabec 2017-10-12 12:17:01 UTC
We're going to close this bug as WONTFIX because

 * of limited capacity of selinux-policy developers
 * the bug is related to EPEL component or 3rd party SW only
 * the bug appears in unsupported configuration 

We believe this bug can be fixed via a local policy module.
For more information please see: 

 * https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-security-enhanced_linux-troubleshooting-fixing_problems#sect-Security-Enhanced_Linux-Fixing_Problems-Allowing_Access_audit2allow

If you disagree, please re-open the bug.

Comment 8 Lukas Vrabec 2017-10-12 12:20:25 UTC
We're going to close this bug as WONTFIX because

 * of limited capacity of selinux-policy developers
 * the bug is related to EPEL component or 3rd party SW only
 * the bug appears in unsupported configuration 

We believe this bug can be fixed via a local policy module.
For more information please see: 

 * https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-security-enhanced_linux-troubleshooting-fixing_problems#sect-Security-Enhanced_Linux-Fixing_Problems-Allowing_Access_audit2allow

If you disagree, please re-open the bug.


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