Kwetsberens yn ld.so OpenBSD

Dynamyske loader ld.so, opnommen mei OpenBSD, kin, ûnder bepaalde betingsten, SUID/SGID- applikaasjes ferlitte de LD_LIBRARY_PATH omjouwingsfariabele en lit sadwaande koade fan tredden laden wurde yn 'e kontekst fan in proses dat rint mei ferhege privileezjes. Patches dy't de kwetsberens reparearje binne beskikber foar releases 6.5 и 6.6. Binêre patches (syspatch) foar amd64, i386 en arm64 platfoarms binne al yn produksje en moatte beskikber wêze foar download op it momint dat dit nijs wurdt publisearre.

De essinsje fan it probleem: tidens operaasje ekstrahearret ld.so earst de wearde fan 'e fariabele LD_LIBRARY_PATH út 'e omjouwing en, mei de funksje _dl_split_path() feroaret it yn in array fan snaren - paden nei mappen. As letter bliken docht dat it aktuele proses wurdt begûn troch in SUID/SGID-applikaasje, dan wurde de oanmakke array en yn feite de fariabele LD_LIBRARY_PATH wiske. Tagelyk, as _dl_split_path() sûnder ûnthâld rint (wat dreech is troch de eksplisite 256 kB limyt op 'e grutte fan omjouwingsfariabelen, mar teoretysk mooglik), dan sil de fariabele _dl_libpath de wearde NULL ûntfange, en de folgjende kontrôles fan de wearde fan dizze fariabele sil twinge om de oprop nei _dl_unsetenv ("LD_LIBRARY_PATH") oer te slaan.

Kwetsberens fûn troch saakkundigen Qualy's, lykas ferskate earder bekend makke problemen. De befeiligingsûndersikers dy't de kwetsberens identifisearren, merkten op hoe fluch it probleem waard oplost: in patch waard taret en updates waarden frijjûn binnen trije oeren nei't it OpenBSD-projekt notifikaasje krige.

Tafoeging: It probleem is in nûmer tawiisd CVE-2019-19726. Makke op de oss-security mailinglist offisjele oankundiging, ynklusyf in prototype eksploitaasje dy't rint op OpenBSD 6.6, 6.5, 6.2 en 6.1 arsjitektuer
amd64 en i386 (de eksploitaasje kin oanpast wurde foar oare arsjitektuer).
It probleem is te eksploitearjen yn 'e standertynstallaasje en lit in unprivilegearre lokale brûker koade útfiere as root fia biblioteekferfanging by it útfieren fan de chpass- of passwd suid-utilities. Om de betingsten mei leech ûnthâld te meitsjen dy't nedich binne foar operaasje, set de limyt fan RLIMIT_DATA fia setrlimit.

Boarne: opennet.ru

Add a comment