Bug 1215405 - SELinux is preventing some services from 'read, write' accesses on icastats file
Summary: SELinux is preventing some services from 'read, write' accesses on icastats file
Status: IN_PROGRESS
: 1215426 1215909 (view as bug list)
Alias: None
Product: PUBLIC SUSE Linux Enterprise Micro 6.0
Classification: openSUSE
Component: Security (show other bugs)
Version: unspecified
Hardware: Other Other
: P3 - Medium : Normal
Target Milestone: RC 1
Assignee: Johannes Segitz
QA Contact: Jose Lausuch
URL:
Whiteboard: Submission made already
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-16 13:13 UTC by Jose Lausuch
Modified: 2024-07-17 11:10 UTC (History)
13 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
aarch64_full_journal (2.36 MB, text/plain)
2023-09-16 13:14 UTC, Jose Lausuch
Details
s390x_full_journal (2.05 MB, text/plain)
2023-09-16 13:14 UTC, Jose Lausuch
Details
sl micro 6.0 journal (231.83 KB, text/x-log)
2024-04-29 07:09 UTC, Jose Lausuch
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jose Lausuch 2023-09-16 13:13:36 UTC
Multiple failures appear in journal for aarch64 and s390x images (nothing for x86_64) with this format,e.g.

For aarch64:
> Sep 15 17:23:24.679900 localhost.localdomain setroubleshoot[1943]: SELinux is preventing /usr/sbin/rebootmgrd from read access on the file cpuinfo. For complete SELinux messages run: sealert -l 239007f0-9606-4cc8-bfd4-19e33a5616b1

Related job: https://openqa.suse.de/tests/12141716#step/journal_check/22

And for s390x:
> Sep 16 07:27:44.461423 s390kvm082 setroubleshoot[1840]: SELinux is preventing /usr/sbin/NetworkManager from 'read, write' accesses on the file /dev/shm/icastats_0. For complete SELinux messages run: sealert -l 37c777cd-72ca-4070-ba40-85f2d84eaedd
> Sep 16 07:27:44.553232 s390kvm082 setroubleshoot[1840]: SELinux is preventing sshd from 'read, write' accesses on the file icastats_0. For complete SELinux messages run: sealert -l 58778032-d231-4f07-b6a3-3f761300e35d
> Sep 16 07:29:06.348252 s390kvm082 setroubleshoot[1501]: failed to retrieve rpm info for path '/dev/shm/icastats_0':

Related job: https://openqa.suse.de/tests/12141777#step/journal_check/10
Comment 1 Jose Lausuch 2023-09-16 13:14:09 UTC
Created attachment 869558 [details]
aarch64_full_journal
Comment 2 Jose Lausuch 2023-09-16 13:14:23 UTC
Created attachment 869559 [details]
s390x_full_journal
Comment 3 Jiri Srain 2023-09-18 07:03:05 UTC
The denials can be seen here:

https://openqa.suse.de/tests/12141777#step/health_check/56

Johannes, could you, please, analyse them and - most likely - provide policy fix?

(P1 until analysed)
Comment 4 Johannes Segitz 2023-09-18 07:12:21 UTC
I'll have a look
Comment 5 Johannes Segitz 2023-09-18 07:38:53 UTC
seems to be related to stats collection for some hw crypto on those archs. Don't think that this is serious. Checking this takes time as those archs are so very slow on my host ...
Comment 6 Johannes Segitz 2023-09-18 09:21:29 UTC
no occurring in emulation, probably since I don't have the proper hardware. I'll have a look at openssl and sshd
Comment 7 Johannes Segitz 2023-09-18 11:12:21 UTC
it is the crypto stats introduced with https://github.com/opencryptoki/libica/commit/a59af0ce9e8ecfeafcf10c589ff947f93fee8617

The whole idea seems fishy to me. There are functions that iterate over all entries that match the pattern. I try to get a test setup in which I can examine this closer
Comment 8 Johannes Segitz 2023-09-18 14:52:30 UTC
so this is triggered when openssl-ibmca is present. Then processes utilizing openssl (here sshd) will create this file.

This is not something we can fix in the policy. Depending on which process triggers the first usage of openssl the resulting file will have a file context based on the SELinux process context. Then other processes in their own contexts will try to access the file and fail. It's also not just limited to the type. The interactive program icastats can be called, which will create the file with a user security context, which will cause even more issues.

It's also quite an unfortunate choice for a security critical functionality to expose these stats (and consume them) globally. This looks very much like debug functionality which should be disabled in my view.

I also can create a shm segment for another UID and have the tooling operate on this, changing the UID of the shm segment to a UID of my choosing. Apart from corrupting the stats I couldn't find another way to exploit this, but I also didn't look this hard.

I've added the libica maintainer to discuss this. In my opinion this reporting functionality should be disabled.
Comment 9 Johannes Segitz 2023-09-18 14:53:13 UTC
Adding needinfo to make it more visible
Comment 10 Richard Fan 2023-09-19 03:37:25 UTC
As discussed offline with Jose Lausuch, I will try to add a whitelist for this bug to our test code and soft-fail it for now.
Comment 11 Wayne Chen 2023-09-19 04:00:13 UTC
There is another error reported together:

Sep 15 17:26:17.629077 localhost.localdomain auditd[1737]: plugin /usr/sbin/sedispatch terminated unexpectedly

This can be seen on s390x and x86_64. Not sure whether it is SELinux related.
Comment 12 Richard Fan 2023-09-19 05:16:46 UTC
(In reply to Wayne Chen from comment #11)
> There is another error reported together:
> 
> Sep 15 17:26:17.629077 localhost.localdomain auditd[1737]: plugin
> /usr/sbin/sedispatch terminated unexpectedly
> 
> This can be seen on s390x and x86_64. Not sure whether it is SELinux related.

It has been tracked via bug https://bugzilla.suse.com/show_bug.cgi?id=1215377

And I have added a PR to soft-fail it https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/17792
Comment 13 Nikolay Gueorguiev 2023-09-19 09:21:13 UTC
Hello IBM,

Could you please review the attachments (s390x), and provide a feedback?

Thanks in advance.
Comment 14 Johannes Segitz 2023-09-19 10:00:35 UTC
*** Bug 1215426 has been marked as a duplicate of this bug. ***
Comment 15 Thomas Staudt 2023-09-19 11:12:05 UTC
(In reply to Nikolay Gueorguiev from comment #13)
> Hello IBM,
> 
> Could you please review the attachments (s390x), and provide a feedback?
> 
> Thanks in advance.

Hi Nikolay,

I'll mirror the bug to IBM and we'll take a look.
Comment 16 LTC BugProxy 2023-09-19 12:40:58 UTC
------- Comment From ifranzki@de.ibm.com 2023-09-19 08:31 EDT-------
@Christian: Didn't we have similar such cases already, and how have they been resolved back then?
Comment 17 LTC BugProxy 2023-09-20 16:10:53 UTC
------- Comment From Christian.Rund@de.ibm.com 2023-09-20 12:09 EDT-------
(In reply to comment #8)
> @Christian: Didn't we have similar such cases already, and how have they
> been resolved back then?
@Ingo: If I understand the current situation correctly I assume you are referring to the following commit to contribute to solve the reported problem. Otherwise I have not seen any fixes happened for SELinux rules
https://github.com/opencryptoki/libica/commit/cd5b2b75554875111bf375b555ebd3b185cff1a0

Regarding the setroubleshoot tool message: "failed to retrieve rpm info for path '/dev/shm/icastats_0':" in this context 'setroubleshoot' will not succeed to retrieve rpm information for the icastats shared memory segment as it is not directly owned by an RPM package:

# rpm -qf /dev/shm/icastats_0
file /dev/shm/icastats_0 is not owned by any package

In addition on one of our SLES test systems which happens to be a SLES15 SP3 system I installed the 'selinux-tools' package and checked that SELinux is not in use at all. We are using a default setup and do _not_ explicitly disable SELinux:
# getenforce
Disabled

I failed enabling SELinux by running 'setenforce Enforcing' or 'setenforce 1' when trying to investigate more on my end:
# setenforce Enforcing
setenforce: SELinux is disabled

The installed selinux releated packages on our test system were the ones listed below by zypper, and I am not aware of a missing package:
# zypper search selinux
Loading repository data...
Reading installed packages...

S  | Name                            | Summary                                           | Type
---+---------------------------------+---------------------------------------------------+--------
| libselinux-bindings-debugsource | Debug sources for package libselinux-bindings     | package
| libselinux-debugsource          | Debug sources for package libselinux              | package
| libselinux-devel                | Development files for the SELinux runtime library | package
i  | libselinux1                     | SELinux runtime library                           | package
| libselinux1-debuginfo           | Debug information for package libselinux1         | package
i+ | python3-selinux                 | Python bindings for the SELinux runtime library   | package
| python3-selinux-debuginfo       | Debug information for package python3-selinux     | package
i+ | selinux-tools                   | SELinux command-line utilities                    | package
| selinux-tools-debuginfo         | Debug information for package selinux-tools       | package
Comment 18 LTC BugProxy 2023-09-21 06:21:10 UTC
------- Comment From ifranzki@de.ibm.com 2023-09-21 02:18 EDT-------
@Christian: I was referring to similar cases where SE Linux caused the open of the statistics shm to fail. If I remember correctly, we back then requested to add SE Linux rules to cover that. Can you remember such cases ?

In any case, if libica fails to open the statistics shm, this should not cause any trouble. Libica is still fully functioning, it just won't record any statistics for that run.

So if its impossible (for whatever reason) to add proper SE Linux rules to allow the applications that use libica to open the shm, then this open failure can simply be ignored.
Comment 19 LTC BugProxy 2023-09-21 09:11:58 UTC
------- Comment From Christian.Rund@de.ibm.com 2023-09-21 05:07 EDT-------
(In reply to comment #11)
> @Christian: I was referring to similar cases where SE Linux caused the open
> of the statistics shm to fail. If I remember correctly, we back then
> requested to add SE Linux rules to cover that. Can you remember such cases ?
As I up to now I did not succeed to enable SELinux into 'Enforcing' mode I cannot ensure whether the necessary rules are in place or not.
What do we need to do do set the 'Enforcing' mode successfully up and running?
Comment 20 Johannes Segitz 2023-09-25 14:23:26 UTC
it's enough to have it in permissive mode to see the problem. If you need general guidance on how to install SELinux:
https://documentation.suse.com/sles/15-SP4/html/SLES-all/cha-selinux.html

I would not only concentrate on the SELinux issue here. I find it in general worrisome that a a crypto components collects stats like this (possible side channel?) in production. See my other concerns in comment 8.

The main problem for SELinux is that this shm segment will be created by the first process that uses openssl. Let's say there's a daemon that has an init script. If this init script invokes something that uses openssl then the shm will be created with a type that derives from the type used in the init script, which is likely incompatible with the type used for the daemon.

The whole design is an issue for SELinux. And since I have concerns about this being enabled by default at all I would like to see this put behind some debug flag.
Comment 21 LTC BugProxy 2023-09-25 15:12:02 UTC
------- Comment From ifranzki@de.ibm.com 2023-09-25 10:52 EDT-------
> I find it in general worrisome that a a crypto components collects stats like this (possible side channel?)

Please note that the statistics are counted per user. There are separate shms per user. A user's shm can only be accessed by that user (and root). So I don't really see how that would be a security risk. A single user can only see its own statistics, which is nothing that he wouldn't be able to know already anyway.

> I would like to see this put behind some debug flag

I disagree. Please note that having good crypto usage statistics is essential in order to find out which crypto algos and key sizes a workload uses. Clients typically don't just know that, they need statistics to find that out.
Especially with the move to post-quantum crypto algorithms, it is absolutely essential to be able to find out which algos and key sizes are currently used.
Comment 22 Johannes Segitz 2023-09-28 09:13:43 UTC
I'm not opposed to the functionality in general and agree that it is useful. I just don't think that this should be enabled permanently for all use cases, no matter if they need the information or not.

As to the risks: Currently every user can create this and populate it with faked data. This is then parsed by root when looking at all stats. Are you sure your parser is robust enough to handle malicious input?

But that's not really the main issue here. The problem is that due to the design it's next to impossible to get this properly handled in SELinux. The context of the shm depends on which process is started first that uses openssl. 

/dev/shm on my test system
-rw-------.  1 root root  system_u:object_r:tmpfs_t:s0        3.6K Sep 28 09:09 icastats_0
-rw-------.  1 sles users unconfined_u:object_r:user_tmp_t:s0 3.6K Sep 28 09:09 icastats_1000

The first one was created by a daemon that runs as root. The second one was created by a user that runs as unconfined and invoked openssl manually. As you can see the first three fields of the security context differ. Depending on how operations are ordered, which policy is used and how it is configured there are many ways how this can play out. Sometimes it will work, sometimes not.

I ATM don't see a reasonable way how to this could be handled on the policy side.
Comment 23 LTC BugProxy 2023-09-28 09:40:36 UTC
------- Comment From ifranzki@de.ibm.com 2023-09-28 05:33 EDT-------
So how did you handle this all the recent years ? The libica statistics are not new, they exist since long time. Also the IBMCA engine exists quite long, and with it it was all the time possible that any application that uses OpenSSL creates libica statistics shms. The IBMCA provider is just another flavor of an OpenSSL plugin, but not new in terms of libica statistics. So why is this a problem just now ?
Comment 24 Johannes Segitz 2023-09-28 12:12:45 UTC
Because we didn't use SELinux until now. This is a problem on any system that has SELinux enabled. As we used AppArmor this wasn't a problem for us until now
Comment 25 LTC BugProxy 2023-10-18 14:51:05 UTC
------- Comment From Christian.Rund@de.ibm.com 2023-10-18 10:42 EDT-------
(In reply to comment #17)
> Because we didn't use SELinux until now. This is a problem on any system
> that has SELinux enabled. As we used AppArmor this wasn't a problem for us
> until now
Hello Johannes,
there are distributions implementing SELinux which already support the libica statistics counting and providing the necessary rule set to satisfy the scheme as you showed above, especially using 'system_u' for the root user and 'unconfined_u' for non-root users.

/dev/shm on my test system
-rw-------.  1 root root  system_u:object_r:tmpfs_t:s0        3.6K Sep 28 09:09 icastats_0
-rw-------.  1 sles users unconfined_u:object_r:user_tmp_t:s0 3.6K Sep 28 09:09 icastats_1000
Comment 26 Johannes Segitz 2023-10-23 14:51:10 UTC
Hello,

can you please share which distributions support this so I can check their policy how they do that? I fail to see how to solve that in general (apart from fixing single use cases) and would be interested how they do that
Comment 27 Cathy Hu 2023-10-24 09:00:16 UTC
*** Bug 1215909 has been marked as a duplicate of this bug. ***
Comment 29 LTC BugProxy 2023-10-27 13:12:12 UTC
------- Comment From Christian.Rund@de.ibm.com 2023-10-27 09:03 EDT-------
(In reply to comment #22)
> Hello,
>
> can you please share which distributions support this so I can check their
> policy how they do that? I fail to see how to solve that in general (apart
> from fixing single use cases) and would be interested how they do that
Hi Johannes,
you might want to check the most recent Fedora for this purpose.
Thanks,
Christian
Comment 30 Johannes Segitz 2023-11-15 14:38:34 UTC
sorry for the delayed response. Our s390x was moved and I didn't have access to a machine to work on this, then we had hackweek.

So the Fedora policy has as static mapping rule
/dev/shm/icastats_0     --      gen_context(system_u:object_r:ica_tmpfs_t,s0)
and some interfaces that allow working with ica_tmpfs_t.

We have the same rules. This only handles the special case for UID 0 and the daemons
- apache
- firewalld
- gssproxy
- sssd
- networkmanager
- ssh

So if any other daemon is started first and uses crypto (and for every UID!=0) this breaks. 

We can fix this for this case, but the general problem still stays that this concept is at odds with how SELinux works and will break in the future again (and is broken for every non-root user permanently unless it works by accident).

I'll will submit a fix, but I highly recommend to hide this behavior behind some debug flag
Comment 31 Johannes Segitz 2023-11-23 15:21:08 UTC
The ica module wasn't active. I'll create an update that will fix this. But as said this will only fix the common case, it's not a full solution
Comment 34 Maintenance Automation 2023-11-29 08:30:04 UTC
SUSE-RU-2023:4604-1: An update that has one fix can now be installed.

Category: recommended (moderate)
Bug References: 1215405
Sources used:
SUSE Linux Enterprise Micro for Rancher 5.4 (src): selinux-policy-20230511+git5.54d165ea-150400.4.18.1
SUSE Linux Enterprise Micro 5.4 (src): selinux-policy-20230511+git5.54d165ea-150400.4.18.1
openSUSE Leap Micro 5.4 (src): selinux-policy-20230511+git5.54d165ea-150400.4.18.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 35 Maintenance Automation 2023-11-29 08:30:07 UTC
SUSE-RU-2023:4603-1: An update that has one fix can now be installed.

Category: recommended (moderate)
Bug References: 1215405
Sources used:
SUSE Linux Enterprise Micro 5.5 (src): selinux-policy-20230511+git9.1b35a6ab-150500.3.6.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 36 Johannes Segitz 2023-12-07 08:08:19 UTC
The updates fix the problem, but the openQA test is to unspecific and matches other AVCs. I'll sent a PR to fix this
Comment 38 Jose Lausuch 2024-04-29 07:09:02 UTC
Created attachment 874540 [details]
sl micro 6.0 journal

Hi, even though https://build.suse.de/request/show/322950 was accepted. 
We still see this error in s390x architecture only for SL Micro 6.0.
Comment 39 Marcela Maslanova 2024-04-29 07:40:06 UTC
@Johannes according to log from Jose, the ica module doesn't work at all. There is a new openssl-3-3.1.4-5.6.s390x.rpm and new openssl-ibmca-2.4.1-1.1.s390x.rpm. Is it possible that directories changed and rules are broken again?
Comment 40 Jose Lausuch 2024-04-29 13:01:23 UTC
@Johannes Segitz
As requested. 

https://openqa.suse.de/tests/14165208#step/journal_check/11

List of denials:

> type=AVC msg=audit(1714374319.869:166): avc:  denied  { read write } for  pid=2644 comm="firewalld" name="icastats_0" dev="tmpfs" ino=3 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:ica_tmpfs_t:s0 tclass=file permissive=0
> type=AVC msg=audit(1714374319.869:167): avc:  denied  { read write } for  pid=2644 comm="firewalld" name="icastats_0" dev="tmpfs" ino=3 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:ica_tmpfs_t:s0 tclass=file permissive=0
> type=AVC msg=audit(1714374319.869:168): avc:  denied  { read } for  pid=2644 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374319.869:169): avc:  denied  { read } for  pid=2644 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374319.869:170): avc:  denied  { read } for  pid=2644 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374319.869:171): avc:  denied  { read } for  pid=2644 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374319.869:172): avc:  denied  { read } for  pid=2644 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374319.869:173): avc:  denied  { read } for  pid=2644 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374319.869:174): avc:  denied  { read } for  pid=2644 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374319.869:175): avc:  denied  { read } for  pid=2644 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374320.839:195): avc:  denied  { read write } for  pid=2710 comm="firewalld" name="icastats_0" dev="tmpfs" ino=3 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:ica_tmpfs_t:s0 tclass=file permissive=0
> type=AVC msg=audit(1714374320.839:196): avc:  denied  { read write } for  pid=2710 comm="firewalld" name="icastats_0" dev="tmpfs" ino=3 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:ica_tmpfs_t:s0 tclass=file permissive=0
> type=AVC msg=audit(1714374320.839:197): avc:  denied  { read } for  pid=2710 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374320.839:198): avc:  denied  { read } for  pid=2710 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374320.839:199): avc:  denied  { read } for  pid=2710 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374320.839:200): avc:  denied  { read } for  pid=2710 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374320.839:201): avc:  denied  { read } for  pid=2710 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374320.839:202): avc:  denied  { read } for  pid=2710 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374320.839:203): avc:  denied  { read } for  pid=2710 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374320.839:204): avc:  denied  { read } for  pid=2710 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374321.319:209): avc:  denied  { read } for  pid=2735 comm="setroubleshootd" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:setroubleshootd_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374321.319:210): avc:  denied  { read } for  pid=2735 comm="setroubleshootd" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:setroubleshootd_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374321.319:211): avc:  denied  { read } for  pid=2735 comm="setroubleshootd" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:setroubleshootd_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374321.319:212): avc:  denied  { read } for  pid=2735 comm="setroubleshootd" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:setroubleshootd_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374321.319:213): avc:  denied  { read write } for  pid=2735 comm="setroubleshootd" name="z90crypt" dev="devtmpfs" ino=119 scontext=system_u:system_r:setroubleshootd_t:s0 tcontext=system_u:object_r:crypt_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374377.019:289): avc:  denied  { read write } for  pid=2983 comm="firewalld" name="icastats_0" dev="tmpfs" ino=3 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:ica_tmpfs_t:s0 tclass=file permissive=0
> type=AVC msg=audit(1714374377.019:290): avc:  denied  { read write } for  pid=2983 comm="firewalld" name="icastats_0" dev="tmpfs" ino=3 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:ica_tmpfs_t:s0 tclass=file permissive=0
> type=AVC msg=audit(1714374377.029:291): avc:  denied  { read } for  pid=2983 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374377.029:292): avc:  denied  { read } for  pid=2983 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374377.029:293): avc:  denied  { read } for  pid=2983 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374377.029:294): avc:  denied  { read } for  pid=2983 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374377.029:295): avc:  denied  { read } for  pid=2983 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374377.029:296): avc:  denied  { read } for  pid=2983 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374377.029:297): avc:  denied  { read } for  pid=2983 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374377.029:298): avc:  denied  { read } for  pid=2983 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374378.049:305): avc:  denied  { read write } for  pid=3015 comm="firewalld" name="icastats_0" dev="tmpfs" ino=3 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:ica_tmpfs_t:s0 tclass=file permissive=0
> type=AVC msg=audit(1714374378.049:306): avc:  denied  { read write } for  pid=3015 comm="firewalld" name="icastats_0" dev="tmpfs" ino=3 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:ica_tmpfs_t:s0 tclass=file permissive=0
> type=AVC msg=audit(1714374378.049:307): avc:  denied  { read } for  pid=3015 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374378.049:308): avc:  denied  { read } for  pid=3015 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374378.049:309): avc:  denied  { read } for  pid=3015 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374378.049:310): avc:  denied  { read } for  pid=3015 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374378.049:311): avc:  denied  { read } for  pid=3015 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374378.049:312): avc:  denied  { read } for  pid=3015 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374378.059:313): avc:  denied  { read } for  pid=3015 comm="firewalld" name="prandom" dev="devtmpfs" ino=263 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
> type=AVC msg=audit(1714374378.059:314): avc:  denied  { read } for  pid=3015 comm="firewalld" name="hwrng" dev="devtmpfs" ino=118 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:object_r:random_device_t:s0 tclass=chr_file permissive=0
Comment 42 Johannes Segitz 2024-04-30 14:35:31 UTC
I have the necessary change staged in
https://build.suse.de/package/show/home:jsegitz:branches:SUSE:ALP:Source:Standard:1.0/selinux-policy
but I struggle to test this ATM as the VM hangs upon reboot (unrelated problem). I'll give it another try on Thursday
Comment 43 Johannes Segitz 2024-04-30 15:24:18 UTC
Fix submitted in https://build.suse.de/request/show/328359
Comment 44 Richard Fan 2024-05-20 09:52:02 UTC
(In reply to Johannes Segitz from comment #43)
> Fix submitted in https://build.suse.de/request/show/328359

Hello Johannes, https://build.suse.de/request/show/328359, seems it is declined.

Is there any new fix ready?

I can still hit the issue on s390x like:

https://openqa.suse.de/tests/14364761#step/journal_check/12
Comment 45 Cathy Hu 2024-05-21 08:07:48 UTC
The request was moved to SUSE:SLFO:Main by Giacomo: see https://build.suse.de/request/show/330545
Comment 47 Cathy Hu 2024-05-21 10:27:25 UTC
@Richard: 
the image you are testing with is built with selinux-policy package version 20230511+git9.e8d4b4115-150500.1.1, which does not contain the fix yet. the fixed package version is 20230511+git15.bdc96df2-150500.3.15.1 (please note the "+git15")

you can either ask for a rebuild of the image with the policy version to prevent this denial again or fix the test case:

instead of `ausearch -m avc -r` use `ausearch -m avc -r -ts boot` in your test case
(probably here https://github.com/os-autoinst/os-autoinst-distri-opensuse/blob/master/lib/consoletest.pm#L74)

so this is fixed for 5.5 i just tested it manually with the VM from the linked openQA test
Comment 48 LTC BugProxy 2024-05-21 10:33:30 UTC
ah, wait you also see issues in on 5.5? i will have a look since johannes is on vacation