Dinamički učitivač , koji je dio OpenBSD-a, može, pod određenim uvjetima, - aplikacije napuštaju varijablu okruženja LD_LIBRARY_PATH, što omogućuje učitavanje koda treće strane u kontekstu procesa koji se izvodi s povišenim privilegijama. Zakrpe koje ispravljaju ranjivost dostupne su za izdanja. и Binarni zakrpe () za platforme amd64, i386 i arm64 već su ušle u produkciju i trebale bi biti dostupne za preuzimanje do objave ove vijesti.
Problem je u tome što ld.so prvo dohvaća varijablu LD_LIBRARY_PATH iz okruženja i koristi funkciju _dl_split_path() da je pretvori u niz stringova - putanje direktorija. Ako se kasnije ispostavi da je trenutni proces pokrenula SUID/SGID aplikacija, stvoreni niz i sama varijabla LD_LIBRARY_PATH se brišu. Nadalje, ako _dl_split_path() naiđe na nedostatak memorije (što je teško zbog eksplicitnog ograničenja od 256 KB na veličinu varijabli okruženja, ali teoretski moguće), varijabla _dl_libpath bit će postavljena na NULL, a naknadne provjere vrijednosti ove varijable uzrokovat će preskakanje poziva _dl_unsetenv("LD_LIBRARY_PATH").
Ranjivost su otkrili stručnjaci. , baš kao Sigurnosni istraživači koji su identificirali ranjivost primijetili su brzinu kojom je problem riješen: zakrpa je pripremljena, a ažuriranja su objavljena unutar tri sata od primitka obavijesti od strane OpenBSD projekta.
Dodatak: Problemu je dodijeljen broj Ažurirana je mailing lista oss-security. , što uključuje prototipni exploit koji radi na OpenBSD 6.6, 6.5, 6.2 i 6.1 arhitekturama.
amd64 i i386 (eksploit se može prilagoditi za druge arhitekture).
Ranjivost se može iskoristiti u zadanoj instalaciji i omogućuje neprivilegiranom lokalnom korisniku izvršavanje koda s root privilegijama putem zamjene biblioteke prilikom pokretanja suid uslužnih programa chpass ili passwd. Kako bi se stvorili potrebni uvjeti malo memorije za iskorištavanje, ograničenje RLIMIT_DATA postavlja se putem setrlimit.
Izvor: opennet.ru
