Dinamikong loader
Ang esensya sa problema: sa panahon sa operasyon, ld.so una nga gikuha ang kantidad sa LD_LIBRARY_PATH variable gikan sa palibot ug, gamit ang _dl_split_path() function, nahimo kini nga usa ka han-ay sa mga kuldas - mga agianan sa mga direktoryo. Kung kini sa ulahi nahimo nga ang karon nga proseso gisugdan sa usa ka aplikasyon sa SUID / SGID, nan ang gihimo nga array ug, sa tinuud, ang variable nga LD_LIBRARY_PATH natangtang. Sa parehas nga oras, kung ang _dl_split_path() nahutdan sa memorya (nga lisud tungod sa klaro nga 256 kB nga limitasyon sa gidak-on sa mga variable sa palibot, apan posible sa teorya), nan ang _dl_libpath variable makadawat sa kantidad nga NULL, ug ang mga sunod nga pagsusi sa ang bili niini nga variable mopugos sa paglaktaw sa tawag ngadto sa _dl_unsetenv("LD_LIBRARY_PATH").
Ang pagkahuyang nakit-an sa mga eksperto
Dugang: Ang problema gihatagan ug numero
amd64 ug i386 (ang pagpahimulos mahimong ipahiangay alang sa ubang mga arkitektura).
Ang isyu mapahimuslan sa default nga pag-instalar ug nagtugot sa usa ka walay pribilehiyo nga lokal nga tiggamit sa pagpatuman sa code isip gamut pinaagi sa pagpuli sa librarya sa dihang nagpadagan sa chpass o passwd suid utilities. Aron mahimo ang ubos nga memorya nga mga kondisyon nga gikinahanglan alang sa operasyon, itakda ang RLIMIT_DATA nga limitasyon pinaagi sa setrlimit.
Source: opennet.ru