Динамик ачаалагч
Асуудлын мөн чанар: үйл ажиллагааны явцад 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 хэрэгслүүдийг ажиллуулахдаа эрхгүй орон нутгийн хэрэглэгчдэд номын сангийн орлуулалтаар кодыг root болгон ажиллуулах боломжийг олгодог. Ашиглахад шаардлагатай санах ой багатай нөхцлийг бүрдүүлэхийн тулд setrlimit-ээр дамжуулан RLIMIT_DATA хязгаарыг тохируулна уу.
Эх сурвалж: opennet.ru