Dynamisk læsser , som er en del af OpenBSD, kan under visse betingelser, -applikationer forlader miljøvariablen LD_LIBRARY_PATH og dermed tillader tredjepartskode at blive indlæst i konteksten af en proces, der kører med forhøjede rettigheder. Programrettelser, der retter sårbarheden, er tilgængelige for udgivelser. и Binære patches () til amd64-, i386- og arm64-platformene er allerede i produktion og burde være tilgængelige til download, når denne nyhed offentliggøres.
Problemets kerne: Under sin drift udtrækker ld.so først værdien af LD_LIBRARY_PATH-variablen fra miljøet, og ved hjælp af _dl_split_path()-funktionen omdannes den til et array af strenge - stier til mapper. Hvis det senere viser sig, at den aktuelle proces startes af en SUID/SGID-applikation, ryddes det oprettede array og faktisk LD_LIBRARY_PATH-variablen. Samtidig, hvis _dl_split_path() under sin drift støder på mangel på hukommelse (hvilket er vanskeligt på grund af tilstedeværelsen af en eksplicit begrænsning på størrelsen af miljøvariabler på 256 KB, men teoretisk muligt), vil _dl_libpath-variablen modtage værdien NULL, og den efterfølgende kontrol af værdien af denne variabel vil tvinge kaldet til _dl_unsetenv(«LD_LIBRARY_PATH») til at blive sprunget over.
Sårbarhed fundet af eksperter , ligesom problemer. Sikkerhedsforskerne, der identificerede sårbarheden, bemærkede den hastighed, hvormed problemet blev løst: en programrettelse blev udarbejdet, og opdateringer blev udgivet inden for tre timer efter, at OpenBSD-projektet modtog beskeden.
Tillæg: Problemet har fået tildelt et nummer Mailinglisten for oss-security har lavet , som inkluderer en prototype-exploit, der fungerer på OpenBSD 6.6, 6.5, 6.2 og 6.1 arkitekturer
amd64 og i386 (udnyttelsen kan tilpasses til andre arkitekturer).
Problemet kan udnyttes i en standardinstallation og tillader en ikke-privilegeret lokal bruger at udføre kode med root-rettigheder via bibliotekserstatning, når værktøjerne suid chpass eller passwd køres. RLIMIT_DATA-grænsen er sat via setrlimit for at skabe de lave hukommelsesbetingelser, der er nødvendige for udnyttelse.
Kilde: opennet.ru
