Re: IB pkey policy problem found via the selinux-testsuite

Stephen Smalley <[email protected]>
Newsgroups org.kernel.vger.selinux-refpolicy,org.kernel.vger.selinux
Message-ID <[email protected]>
On 9/4/19 6:32 PM, Paul Moore wrote:
> On Tue, Sep 3, 2019 at 10:45 AM Stephen Smalley <[email protected]> wrote:
>> On 9/3/19 10:30 AM, Daniel Jurgens wrote:
>>>
>>> On 8/27/2019 12:24 PM, Paul Moore wrote:
>>>> On Thu, Feb 28, 2019 at 4:58 PM Paul Moore <[email protected]> wrote:
>>>>> On Wed, Feb 13, 2019 at 4:35 PM Paul Moore <[email protected]> wrote:
>>>>>> Hello all,
>>>>>>
>>>>>> On a fully up-to-date Rawhide system you need the following line added
>>>>>> to the policy/test_ibpkey.te file to get a clean run of the
>>>>>> selinux-testsuite:
>>>>>>
>>>>>>     allow test_ibpkey_access_t self:capability { ipc_lock };
>>>>>>
>>>>>> The breakage doesn't appear to be due to a kernel change (previously
>>>>>> working kernels now fail), or a Fedora Rawhide policy change (nothing
>>>>>> relevant changed since the last clean run), but I did notice that my
>>>>>> libibverbs package was updated just prior to the breakage.  I haven't
>>>>>> had the time to dig into the library code, but I expect that to be the
>>>>>> source of the problem.
>>>>> Just to be clear, I don't believe this breakage is limited to the test
>>>>> suite, I expect any users of the SELinux IB hooks will run into this
>>>>> problem.  I believe we need to update the upstream and distro
>>>>> policies.
>>>> A ping to bring this issue back to the top of the mailing list.
>>>
>>> Hi Paul, I looked in the libraries and don't see explicit use of mlock. Maybe there was a change to use that access control for get_user_pages? That doesn't really jive with previously working kernels no longer working though.
>>
>> It would be useful to see the audit messages for that ipc_lock denial,
>> including the SYSCALL record.
>>
>> There are a number of kernel operations that can trigger ipc_lock checks,
>> https://elixir.bootlin.com/linux/latest/ident/CAP_IPC_LOCK
>>
>> Several of those are infiniband-specific.
> 
> Hi all,
> 
> Sorry for the delay in responding.  Here is what I see when running
> the infiniband_pkey test on a current Fedora Rawhide system (run
> individually to capture the output):
> 
> 1..4
> # Running under perl version 5.030000 for linux
> # Current time local: Wed Sep  4 18:24:39 2019
> # Current time GMT:   Wed Sep  4 22:24:39 2019
> # Using Test.pm version 1.31
> ok 1
> Unable to create cq.
> not ok 2
> # Test 2 got: "256" (./test at line 50)
> #   Expected: "0"
> #  ./test line 50 is:     ok( $result, 0 );
> Unable to create cq.
> not ok 3
> # Test 3 got: "1" (./test at line 71)
> #   Expected: "13"
> #  ./test line 71 is: if (@unlabeled_pkeys) {
> ok 4
> 
> ... and I see the following AVCs:
> 
> type=AVC msg=audit(1567635879.312:15018): avc:  denied  { ipc_lock } for
>    pid=15726 comm="create_modify_q" capability=14
>    scontext=unconfined_u:unconfined_r:test_ibpkey_access_t:s0-s0:c0.c1023
>    tcontext=unconfined_u:unconfined_r:test_ibpkey_access_t:s0-s0:c0.c1023
>    tclass=capability permissive=0
> type=AVC msg=audit(1567635884.022:15020): avc:  denied  { ipc_lock } for
>    pid=15732 comm="create_modify_q" capability=14
>    scontext=unconfined_u:unconfined_r:test_ibpkey_access_t:s0-s0:c0.c1023
>    tcontext=unconfined_u:unconfined_r:test_ibpkey_access_t:s0-s0:c0.c1023
>    tclass=capability permissive=0
> 
> If I apply the workaround patch I mentioned earlier, the test succeeds
> and the only AVC is a infiniband_pkey:access denial (which is expected
> given the test).

I don't suppose you have SYSCALL (and possibly other auxiliary) audit 
records from those denials?
Trying to figure out what system call triggered the CAP_IPC_LOCK check.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.