Dynamisk loader , som er en del af OpenBSD, kan under visse forhold for -applikationer efterlade miljøvariablen LD_LIBRARY_PATH og dermed tillade indlæsning af tredjepartskode i konteksten af en proces, der kører med forhøjede privilegier. Patches, der retter sårbarheden, er tilgængelige for versioner og . Binære patches () for platforme som amd64, i386 og arm64 er allerede sendt i produktion og burde være tilgængelige for download ved offentliggørelsen af denne nyhed.
Problemet går ud på, at ld.so først udtrækker værdien af miljøvariablen LD_LIBRARY_PATH, og ved hjælp af funktionen _dl_split_path() omdanner den til et array af strenge - stier til kataloger. Hvis det senere viser sig, at den aktuelle proces kører som en SUID/SGID-applikation, så rense arrayet og selve miljøvariablen LD_LIBRARY_PATH. Hvis _dl_split_path() under sin kørsel oplever hukommelsesmangel (hvilket er svært grundet den eksplicitte grænse på størrelsen på miljøvariabler på 256 kB, men teoretisk muligt), så vil variablen _dl_libpath få værdien NULL, og den efterfølgende kontrol af værdien af denne variabel vil få _dl_unsetenv("LD_LIBRARY_PATH") til at blive sprunget over.
Sårbarheden blev opdaget af specialister fra , ligesom flere tidligere kendte Supplement: Problemet er blevet tildelt nummeret
CVE-2019-19726 officiel meddelelse amd64 og i386 (exploiten kan tilpasses andre arkitekturer).
Problemet er udnytteligt i standardinstallationen og tillader en ikke-privilegeret lokal bruger at køre kode som root ved at substituere et bibliotek ved opstart af suid-værktøjerne chpass eller passwd. For at skabe de nødvendige betingelser for udnyttelse af hukommelsesmangel anvendes grænsen RLIMIT_DATA gennem setrlimit.
Hvordan man vurderer niveauet af engelskkundskaber
Kilde: opennet.ru
