Re: [KERNEL] Re: [KERNEL] [PATCH] Kernel 4.3 breaks security in systems using capabilities

From: Klaus Ethgen
Date: Tue Nov 10 2015 - 13:02:24 EST

Hash: SHA512

Am Di den 10. Nov 2015 um 14:35 schrieb Austin S Hemmelgarn:
> On 2015-11-10 08:19, Klaus Ethgen wrote:
> >Hi Ted, hy others in this discussion,
> >
> >Am Di den 10. Nov 2015 um 13:40 schrieb Theodore Ts'o:
> >>Whether or not that will be acceptable upstream, I don't know, mainly
> >>because I think a strong case can be made that such a patch has an
> >>audience of one, and adding more complexity here for an idea which has
> >>been time-tested over decades to be a failure is just not a good idea.
> >
> >I wouldn't tell the implementation until now to be a failure. It helped
> >a lot to keep a system sane. It is true that all distributions ignored
> >capabilities completely but I don't think that is due the design.
> I think it's mostly due to the fact that there are a lot of potential
> security issues in using capabilities as implemented in Linux (and other
> POSIX systems),

Well, of course. If you give a process capabilities, it can use it. That
is in the nature of the problem. But in comparison to SUID, it is
selective rights. That makes it much more troublesome to exploit. Why
the hell is, for example, ping installed SUID root? There is only one
privileged right that is needed instead of all or nothing.

> and unlike chroot(), it's not as easy to protect against stuff trying
> to bypass them while still keeping them useful.

It is the same, you have to be aware of the problem and need to mitigate

chroot addresses different thinks than capabilities. And also chroot is
exploitable and you can break out in some cases. You have to do it

> If you do a web search you can relatively easily find info on how to
> use many of the defined capabilities to get root-equivalent access
> (CAP_SYS_ADMIN and CAP_SYS_MODULE are obvious, but many of the others
> can be used also if you know what you are doing, for example
> CAP_DAC_OVERRIDE+CAP_SYS_BOOT can be used on non-SecureBoot systems to
> force the system to reboot into an arbitrary kernel).

Well, that is like it should be. If you give an exploitable application
rights that it should not have, it can get exploited. But this decision
is in the responsibility of the admin.

With ambient capabilities, you transfer that responsibilities to all the
different developers that once in a while wrote a SUID tool (or tool
with raised capabilities). So, tell me, where does the ambient
capabilities raise the security?

For the records: It does in limited cases when you start with all
capabilities and take away most except the one some sub tools needs.
But, sorry, I just sees that as a limited use. Nevertheless, for such
cases, ambient capabilities might be useful.

- --
Klaus Ethgen
pub 4096R/4E20AF1C 2011-05-16 Klaus Ethgen <Klaus@xxxxxxxxx>
Fingerprint: 85D4 CA42 952C 949B 1753 62B3 79D0 B06F 4E20 AF1C
Version: GnuPG v1

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at