Re: sepgsql and process transition

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Kohei KaiGai wrote:
The reason why we check process:{transition} permission on invocation
of trusted procedures is an analogy to execution of program with
domain transition.

In the case of domain transition, it checks process:{transition}
permission on a pair of source and target domain, and it also checks
file:{entrypoint execute} permission on the security label of the file
to be launched.


I think I hit the exact reason why this bothers me today. As staff_t:SystemLow-SystemHigh I wanted a stored procedure that ran at sepgsql_trusted_proc_t:SystemHigh (so that it could read a SystemHigh column and fuzz the results).

Because of the current process constraint:
 mlsconstrain process transition
       (( h1 dom h2 ) and
        (( l1 eq l2 ) or ( t1 == mlsprocsetsl ) or
         (( t1 == privrangetrans ) and ( t2 == mlsrangetrans ))));

it isn't possible unless staff_t is part of privrangetrans and sepgsql_trusted_proc_t is part of mlsrangetrans. I don't mind the latter but the former is clearly a violation of how MLS is suppose to work on multi-level SELinux systems (in general, unprivileged users should not be able to change their level without going through newrole or logging out and back in).

If there was a different object class for procedures-while-executing, akin to process but called something different we could have a different constraint that made more sense for this use case.



--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.


[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux