Control: close

On Thu, 19 Mar 2026 16:24:57 +0000
Nikolas Kyx <[email protected]> wrote:

> > I'm not sure if this is a coincidence, but I suppose you tried this in  
> > the wake of the CrackArmor disclosure last week.
> 
> I like to build stripped-down kernels on different hardwares, those
> fit my needs and not more. All desktop applications work fine but do
> not benefit from e.g. bubblewrap (which is installed as a dependency
> and tries to do its job). But yes, it may be related to CrackArmor,
> since that all is about mediating risks between <unprivileged userns
> clone, kernel API is in danger>  and <user applications can't do
> userns clone, no isolation between them>. I would prefer the former,
> since stripped down kernels hide less bugs in them :)

I see your point and I guess it's valid in the vast majority of cases,
but you can definitely have non-negative amounts of code, in some other
cases, that improve security rather than making it worse.

I (still) think that namespaces are examples of that. Of course in the
past years additional kernel surface was exposed because of them (and
I'm myself at fault for CVE-2022-2078, for example) but I'd ascribe
that to novelty rather than to some intrinsic quality of that code.

That is, the longer it's exposed, the more secure it gets (as a general
trend at least). Just like everything else.

> Btw, no apparmor in my system either.
> 
> When I was creating an issue, I mistakenly thought that it's just that
> single check which did not recognize the possibility of missing
> CONFIG_USERNS. But when adapting passt code for local build, I
> realized that USERNS is explicitly mandatory and there is no mistake.
> I think that for things like userns / seccomp / etc it is normal to
> emit big fat warning when some mechanism is not available - if those
> are required exclusively from a security viewpoint.

Sometimes, yes. But I would argue that, in general, this isn't exactly
an incentive to fix things, should some security mechanism be
unavailable or unusable due to other issues.

We had users in particular environments (KubeVirt is an example) who
asked us to add options to disable passt's seccomp profile. By not
giving in, things were fixed, eventually, and passt now runs with its
strict seccomp profile on any environments I'm aware of.

> I tested passt
> with all userns-dependent code (as you described in (a)) removed and
> it works just fine. Though if you want to depend on that features
> unconditionally I understand since checking itself may open exploit
> possibilities.

It's a bit about checking, and a bit about discouraging potentially
insecure shortcuts.

Sure, if you disable user namespaces you make some things a bit more
secure, but, especially without LSMs,  if you skip filesystem
sandboxing, passt now gets have access to your filesystem, and, with
passt, also the guest, in case of arbitrary code execution.

I would suggest that you run your own tailored build in this case. You
know what you're doing and you're doing it for a very specific reason,
but I don't want to risk having unreported issues. For example:

  https://passt.top/passt/commit/?id=faab79cfd56a

if we had just skipped isolation features based on user namespaces, we
wouldn't have found out about this, at least for a while, and kept
those features disabled as a result, with user namespaces available in
general on the system.

> Then you may just close that issue.

I just did. Thanks for following up with your usage and reasoning!

-- 
Stefano

Reply via email to