User namespaces vormen het fundament onder containertechnologie zoals Docker en Podman. Ze zorgen ervoor dat een gewone gebruiker binnen een afgesloten omgeving beheerder kan zijn, zonder dat diegene ook de controle over de rest van het besturingssysteem krijgt. Tegelijkertijd kent Linux al jaren zogeheten file capabilities. Daarmee kan een specifiek programma heel gericht één bepaalde bevoegdheid krijgen, zoals het openen van een netwerkpoort, zonder dat het hele programma meteen met volledige root-rechten hoeft te draaien. Het probleem ontstaat zodra deze twee mechanismen elkaar kruisen, bijvoorbeeld wanneer een proces binnen een container bestanden met speciale rechten probeert te bewaren op een opslagmedium dat ook buiten die container leesbaar is.
Dat klinkt misschien technisch, maar in de praktijk betekent het dat er een risico ontstaat op privilege-escalatie. Als de kernel niet waterdicht bijhoudt in welke specifieke namespace een bestandsrecht geldig is, kan een slim geplaatst bestand er buiten de container voor zorgen dat een gebruiker ineens toegang krijgt tot functies die strikt verboden hadden moeten blijven. Om dit gevaar te bezweren, hebben diverse Linux-distributies het gebruik van user namespaces voor niet-beheerders in het verleden al standaard uitgeschakeld of streng aan banden gelegd, wat weer nadelig is voor ontwikkelaars die juist vlot met rootless containers willen werken.
Binnen de Linux-gemeenschap wordt nu druk overlegd over manieren om de controle op deze bestandsrechten in het onderliggende bestandssysteem grondig aan te scherpen. De situatie laat zien hoe ingewikkeld moderne kernelbeveiliging is: twee losse onderdelen die het systeem aantoonbaar veiliger moesten maken, kunnen samen een onverwachte zwakke plek vormen. De voorgestelde wijzigingen moeten ervoor zorgen dat containers veilig en flexibel kunnen blijven draaien, zonder dat het gastheersysteem gevaar loopt.
