ld.so OpenBSD рдордзреНрдпреЗ рднреЗрджреНрдпрддрд╛

рдбрд╛рдпрдиреЕрдорд┐рдХ рд▓реЛрдбрд░ ld.so, OpenBSD рд╕рд╣ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ, рдХрд╛рд╣реА рдЕрдЯреАрдВрдиреБрд╕рд╛рд░, SUID/SGID- рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ LD_LIBRARY_PATH рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕реЛрдбрддрд╛рдд рдЖрдгрд┐ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдЙрдиреНрдирдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╛рдВрд╕рд╣ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рддреГрддреАрдп-рдкрдХреНрд╖ рдХреЛрдб рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. рдЕрд╕реБрд░рдХреНрд╖рд╛ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгрд╛рд░реЗ рдкреЕрдЪреЗрд╕ рд░рд┐рд▓реАрдЬрд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд 6.5 ╨╕ 6.6. рдмрд╛рдпрдирд░реА рдкреЕрдЪ (syspatch) amd64, i386 рдЖрдгрд┐ arm64 рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рдЖрдзреАрдкрд╛рд╕реВрдирдЪ рдЙрддреНрдкрд╛рджрдирд╛рдд рдЖрд╣реЗрдд рдЖрдгрд┐ рд╣реА рдмрд╛рддрдореА рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдИрдкрд░реНрдпрдВрдд рдбрд╛рдЙрдирд▓реЛрдбрд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд╕рдорд╕реНрдпреЗрдЪреЗ рд╕рд╛рд░: рдСрдкрд░реЗрд╢рди рджрд░рдореНрдпрд╛рди, ld.so рдкреНрд░рдердо рдкрд░реНрдпрд╛рд╡рд░рдгрд╛рддреВрди LD_LIBRARY_PATH рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдореВрд▓реНрдп рдХрд╛рдврддреЗ рдЖрдгрд┐, _dl_split_path() рдлрдВрдХреНрд╢рди рд╡рд╛рдкрд░реВрди, рддреНрдпрд╛рд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЪреНрдпрд╛ рдЕреЕрд░реЗрдордзреНрдпреЗ рдмрджрд▓рддреЗ - рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдВрдЪреЗ рдорд╛рд░реНрдЧ. рд╕рджреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ SUID/SGID рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдиреЗ рд╕реБрд░реВ рдХреЗрд▓реНрдпрд╛рдЪреЗ рдирдВрддрд░ рдЖрдврд│рд▓реНрдпрд╛рд╕, рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓рд╛ рдЕреЕрд░реЗ рдЖрдгрд┐ рдЦрд░реЗрддрд░, LD_LIBRARY_PATH рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕рд╛рдл рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдЬрд░ _dl_split_path() рдореЗрдорд░реА рд╕рдВрдкрд▓реА (рдЬреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪреНрдпрд╛ рдЖрдХрд╛рд░рд╛рд╡рд░реАрд▓ рд╕реНрдкрд╖реНрдЯ 256 kB рдорд░реНрдпрд╛рджреЗрдореБрд│реЗ рдХрдареАрдг рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХрджреГрд╖реНрдЯреНрдпрд╛ рд╢рдХреНрдп рдЖрд╣реЗ), рддрд░ _dl_libpath рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд▓рд╛ NULL рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░рдЪреА рддрдкрд╛рд╕рдгреА рдпрд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдореВрд▓реНрдп _dl_unsetenv("LD_LIBRARY_PATH") рд╡рд░ рдХреЙрд▓ рд╡рдЧрд│рдгреНрдпрд╛рд╕ рднрд╛рдЧ рдкрд╛рдбреЗрд▓.

рддрдЬреНрдЮрд╛рдВрджреНрд╡рд╛рд░реЗ рдЖрдврд│рд▓реЗрд▓реА рдЕрд╕реБрд░рдХреНрд╖рд╛ рдХреНрд╡рд╛рд▓реАрдЬ, рддрд╕реЗрдЪ рдЕрдиреЗрдХ рдкреВрд░реНрд╡реА рдЙрдШрдб рдЕрдбрдЪрдгреА. рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрд╢реЛрдзрдХ рдЬреНрдпрд╛рдВрдиреА рдЕрд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рдУрд│рдЦрд▓реА рддреНрдпрд╛рдВрдиреА рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдХреА рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд┐рддреА рд▓рд╡рдХрд░ рдЭрд╛рд▓реЗ: рдПрдХ рдкреЕрдЪ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрдгрд┐ OpenBSD рдкреНрд░рдХрд▓реНрдкрд╛рд▓рд╛ рд╕реВрдЪрдирд╛ рдорд┐рд│рд╛рд▓реНрдпрд╛рдирдВрддрд░ рддреАрди рддрд╛рд╕рд╛рдВрдЪреНрдпрд╛ рдЖрдд рдЕрджреНрдпрддрдиреЗ рдЬрд╛рд░реА рдХреЗрд▓реА рдЧреЗрд▓реА.

рдЬреЛрдбрдгреЗ: рд╕рдорд╕реНрдпреЗрд▓рд╛ рдПрдХ рдХреНрд░рдорд╛рдВрдХ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ рд╕реАрд╡реНрд╣реАрдИ- 2019-19726. oss-рд╕реБрд░рдХреНрд╖рд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреАрд╡рд░ рдмрдирд╡рд▓реЗ рдЕрдзрд┐рдХреГрдд рдШреЛрд╖рдгрд╛, OpenBSD 6.6, 6.5, 6.2 рдЖрдгрд┐ 6.1 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╡рд░ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реЛрд╖рдгрд╛рд╕рд╣
amd64 рдЖрдгрд┐ i386 (рд╢реЛрд╖рдг рдЗрддрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рд░реБрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ).
рдбреАрдлреЙрд▓реНрдЯ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рдирдордзреНрдпреЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╢реЛрд╖рдг рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗ рдЖрдгрд┐ chpass рдХрд┐рдВрд╡рд╛ passwd suid рдпреБрдЯрд┐рд▓рд┐рдЯрд┐рдЬ рдЪрд╛рд▓рд╡рддрд╛рдирд╛ рд▓рд╛рдпрдмреНрд░рд░реА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирд╛рджреНрд╡рд╛рд░реЗ рд░реВрдЯ рдореНрд╣рдгреВрди рдЕрдирд╛рдзрд┐рдХреГрдд рд╕реНрдерд╛рдирд┐рдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдСрдкрд░реЗрд╢рдирд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдХрдореА-рдореЗрдорд░реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, setrlimit рджреНрд╡рд╛рд░реЗ RLIMIT_DATA рдорд░реНрдпрд╛рджрд╛ рд╕реЗрдЯ рдХрд░рд╛.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛