În gestionele de pachete Nix și Lix a fost descoperită o vulnerabilitate care permite executarea de cod cu privilegiile procesului de fundal, care în NixOS și în instalările multi-utilizator este rulat de utilizatorul root. Problema (CVE neatribuit) se manifestă în procesul de fundal nix-daemon, utilizat pentru a organiza accesul utilizatorilor nepriviligiați la operațiile de compilare și magazinul de pachete.
Vulnerabilitatea apare din cauza lipsei unei limite în procesarea recursivă a directorilor în codul pentru analiza arhivelor NAR (Nix Archive), ceea ce poate fi folosit pentru a iniția epuizarea stivei de corutine și rescrierea conținutului heap-ului plasat după stivă fără pagini de protecție a memoriei. Problema poate fi exploatată de orice utilizator capabil să stabilească conexiuni cu nix-daemon. Implicit, toți utilizatorii au această capacitate, ceea ce permite creșterea privilegiilor până la utilizatorul root în instalările multi-utilizator Nix.
Problema a fost rezolvată prin limitarea nivelului de recursiune la 64 de directoare imbricate, adăugarea de pagini de protecție a memoriei între stivă și heap și implementarea de verificări suplimentare pentru linkurile simbolice în NAR. În Nix, vulnerabilitatea se manifestă începând cu versiunea 2.24.4 și a fost remediată în versiunile 2.34.7, 2.33.6, 2.32.8, 2.31.5, 2.30.5, 2.29.4, 2.28.7. În Lix, vulnerabilitatea a apărut în versiunea 2.93.0 și a fost corectată în actualizările 2.93.4, 2.94.2 și 2.95.2. Managerul de pachete Guix nu este afectat de această vulnerabilitate.
În plus, în actualizările publicate Nix a fost remediată o altă vulnerabilitate (CVE absentă), care a fost atribuită unui nivel mediu de severitate (4.3 din 10). Problema se manifestă începând cu versiunea Nix 2.24.7 și permite scrierea de fișiere în zona dincolo de directorul rădăcină, în care este desfășurată arhiva. Vulnerabilitatea este exploatată prin crearea de elemente cu căi de fișiere absolute în fișiere tar. La desfășurarea unor astfel de arhive cu comanda „nix-prefetch-url —unpack” sau „nix store prefetch-file —unpack”, fișierele cu căi absolute sunt extrase ca atare, fără a fi transformate în căi relative.
Sursa: opennet.ro
