Динамикалык жүктөгүч
Маселенин маңызы: иштөө учурунда ld.so алгач чөйрөдөн LD_LIBRARY_PATH өзгөрмөнүн маанисин чыгарып алат жана _dl_split_path() функциясын колдонуп, аны саптардын массивине - каталогдорго жолго айлантат. Эгер кийинчерээк учурдагы процесс SUID/SGID тиркемеси тарабынан башталганы аныкталса, анда түзүлгөн массив жана чындыгында LD_LIBRARY_PATH өзгөрмөсү тазаланат. Ошол эле учурда, эгерде _dl_split_path() эстутуму түгөнүп калса (бул чөйрө өзгөрмөлөрүнүн өлчөмүндөгү ачык 256 кБ чегинен улам кыйын, бирок теориялык жактан мүмкүн), анда _dl_libpath өзгөрмөсү NULL маанисин алат жана кийинки текшерүүлөр бул өзгөрмөнүн мааниси _dl_unsetenv("LD_LIBRARY_PATH") чакырыгын өткөрүп жиберүүгө мажбурлайт.
Эксперттер тарабынан табылган аялуу
Кошумча: Көйгөйгө номер берилди
amd64 жана i386 (эксплейт башка архитектураларга ылайыкташтырылышы мүмкүн).
Маселе демейки орнотууда пайдаланылышы мүмкүн жана артыкчылыксыз жергиликтүү колдонуучуга chpass же passwd suid утилиталарын иштетип жатканда китепкананы алмаштыруу аркылуу кодду тамыр катары аткарууга мүмкүндүк берет. Иштетүү үчүн зарыл болгон эстутум аз шарттарды түзүү үчүн, setrlimit аркылуу RLIMIT_DATA чегин коюңуз.
Source: opennet.ru