Dinamika ŝargilo
La esenco de la problemo: dum operacio, ld.so unue ĉerpas la valoron de la variablo LD_LIBRARY_PATH el la medio kaj, uzante la funkcion _dl_split_path(), igas ĝin tabelo de ĉenoj - vojoj al dosierujoj. Se poste montriĝas, ke la nuna procezo estas komencita de SUID/SGID-aplikaĵo, tiam la kreita tabelo kaj, fakte, la variablo LD_LIBRARY_PATH estas forigitaj. Samtempe, se _dl_split_path() elĉerpiĝas la memoro (kio estas malfacila pro la eksplicita limo de 256 kB pri la grandeco de mediovariabloj, sed teorie ebla), tiam la variablo _dl_libpath ricevos la valoron NULL, kaj postajn kontrolojn de la valoro de ĉi tiu variablo devigos preterlasi la vokon al _dl_unsetenv ("LD_LIBRARY_PATH").
Vulnerabileco trovita de spertuloj
Aldono: La problemo ricevis nombron
amd64 kaj i386 (la ekspluato povas esti adaptita por aliaj arkitekturoj).
La problemo estas ekspluatebla en la defaŭlta instalo kaj permesas al senprivilegia loka uzanto ekzekuti kodon kiel radikon per biblioteka anstataŭigo dum funkciado de la iloj chpass aŭ passwd suid. Por krei la malaltajn memorkondiĉojn necesajn por funkciado, agordu la RLIMIT_DATA-limon per setrlimit.
fonto: opennet.ru