Open cboltz opened 5 months ago
You could change crun to be crun and crun- to make it more specific.
crun-wasm crun-qm
And potentially others in the future should be handled. These are sybolic links to crun, so not sure if that changes the equation.
These are sybolic links to crun, so not sure if that changes the equation.
Yes - in this case, it makes things easier.
AppArmor checks paths after symlink resolution, so if you have a symlink /usr/bin/crun-wasm -> /usr/bin/crun, AppArmor will always see /usr/bin/crun, and use the crun profile.
Actually the symlink is only true for crun-wasm. crun-vm is a standalong executable.
So for precision it would be better to do crun and crun-*
Where are these other crun-* binaries being shipped or used, like crun-vm? I don't see them in any of the packages in the ubuntu archive, for example:
$ apt-file search /usr/bin/crun
crun: /usr/bin/crun
crunch: /usr/bin/crunch
libcam-pdf-perl: /usr/bin/crunchjpgs
But as can be seen, the concern raised by this ticket is valid: there are binaries matching /usr/bin/crun* that have nothing to do with the container world, and that this apparmor rule would allow.
Change the rule to crun and crun-* if you like. We do not track what is and is not packaged for certain distributions.
In https://github.com/containers/common/commit/1aedc12e356cfd29a5bb54d94e9b2e09da3649ca you added the following signal rules to the AppArmor profile:
This is not completely wrong, but it allows more than really needed.
a) The profiles added in https://gitlab.com/apparmor/apparmor/-/commit/2594d936 are all "named" profiles:
This means you can reference them by their name (runc, crun and podman). Including the path in peer= is superfluous,
peer=runc
is enough.b) Wildcard for
crun*
I don't know why you allow
crun*
instead of justcrun
, but that means that profiles matching that name (for example "cruncher") will be allowed to send signals. If this isn't intentional, I'd recommend to remove the*
..
To sum it up: I propose to change the lines added in https://github.com/containers/common/commit/1aedc12e356cfd29a5bb54d94e9b2e09da3649ca to