È stata rilevata una vulnerabilità nei gestori di pacchetti Nix e Lix che consente l'esecuzione di codice con i diritti di un processo in background, il quale, in NixOS e in installazioni multi-utente, viene eseguito come utente root. Il problema (CVE non assegnato) si manifesta nel processo in background nix-daemon, utilizzato per consentire l'accesso degli utenti non privilegiati alle operazioni di compilation e al repository di pacchetti.
La vulnerabilità deriva dalla mancanza di un vincolo sul trattamento ricorsivo delle directory nel codice per l'analisi degli archivi NAR (Nix Archive), che può essere sfruttato per innescare un esaurimento dello stack delle coroutine e sovrascrivere il contenuto dell'heap, situato dopo lo stack senza pagine di guardia della memoria. Il problema può essere sfruttato da qualsiasi utente in grado di stabilire connessioni con il nix-daemon. Di default, tutti gli utenti hanno questa possibilità, il che consente di elevare i propri privilegi all'utente root in installazioni multi-utente di Nix.
Il problema è stato risolto limitando il livello di ricorsione a 64 directory annidate, aggiungendo pagine di guardia nella memoria tra lo stack e l'heap e implementando ulteriori controlli sui collegamenti simbolici in NAR. In Nix, la vulnerabilità si manifesta a partire dalla versione 2.24.4 ed è stata corretta nelle versioni 2.34.7, 2.33.6, 2.32.8, 2.31.5, 2.30.5, 2.29.4, 2.28.7. In Lix, la vulnerabilità è apparsa nella versione 2.93.0 ed è stata corretta negli aggiornamenti 2.93.4, 2.94.2 e 2.95.2. Il gestore di pacchetti Guix non è interessato dalla vulnerabilità.
Inoltre, negli aggiornamenti pubblicati di Nix è stata corretta un'altra vulnerabilità (CVE assente), classificata a un livello di gravità medio (4.3 su 10). Il problema si manifesta a partire dalla versione Nix 2.24.7 e consente di effettuare la scrittura di file in un'area al di fuori della directory radice in cui viene eseguita la decompressione dell'archivio. La vulnerabilità viene sfruttata attraverso la creazione di elementi nei file tar con percorsi di file assoluti. Durante la decompressione di tali archivi con il comando "nix-prefetch-url —unpack" o "nix store prefetch-file —unpack", i file con percorsi assoluti vengono estratti così come sono, senza essere trasformati in percorsi relativi.
Fonte: opennet.ru
