In de pakketbeheerders Nix en Lix is er een kwetsbaarheid ontdekt die het mogelijk maakt om code uit te voeren met de rechten van een achtergrondproces, dat in NixOS en multi-user installaties onder de root-gebruiker draait. Het probleem (CVE niet toegewezen) komt voor in het achtergrondproces nix-daemon, dat wordt gebruikt om ongeprivilegieerde gebruikers toegang te geven tot build-operaties en de pakketopslag.
De kwetsbaarheid ontstaat door het ontbreken van een beperking op de recursieve verwerking van mappen in de code voor het ontpakken van NAR-archieven (Nix Archive), wat kan worden gebruikt om een stack exhaustion te initiƫren en de inhoud van de heap, die zich na de stack zonder geheugenbeschermingspagina's bevindt, te overschrijven. Het probleem kan worden uitgebuit door elke gebruiker die verbinding kan maken met de nix-daemon. Standaard hebben alle gebruikers deze mogelijkheid, waardoor ze hun privileges kunnen verhogen tot die van de root-gebruiker in multi-user installaties van Nix.
Het probleem is opgelost door de rekursieniveaus te beperken tot 64 geneste mappen, door geheugenbeschermingspagina's tussen de stack en de heap toe te voegen en door extra controles voor symbolische links in NAR te implementeren. In Nix verschijnt de kwetsbaarheid vanaf versie 2.24.4 en is deze verholpen in de versies 2.34.7, 2.33.6, 2.32.8, 2.31.5, 2.30.5, 2.29.4, 2.28.7. In Lix verscheen de kwetsbaarheid in versie 2.93.0 en is deze opgelost in de updates 2.93.4, 2.94.2 en 2.95.2. De Guix-pakketbeheerder wordt niet getroffen door deze kwetsbaarheid.
Bovendien zijn er in de gepubliceerde updates van Nix nog een andere kwetsbaarheid verholpen (CVE ontbreekt), die een gemiddelde ernst heeft gekregen (4.3 uit 10). Het probleem doet zich voor vanaf de release van Nix 2.24.7 en stelt een aanvaller in staat om bestanden te schrijven naar een gebied buiten de root-directory waarin het archief wordt uitgepakt. De kwetsbaarheid wordt uitgebuit door in tar-bestanden elementen met absolute bestandslocaties te creĆ«ren. Bij het uitpakken van dergelijke archieven met het commando "nix-prefetch-url āunpack" of "nix store prefetch-file āunpack" worden bestanden met absolute paden als zodanig uitgepakt, zonder omgevormd te worden naar relatieve paden.
Bron: opennet.ru
