Glibc ld.so сайтындагы аялуу, бул системада тамыр укуктарын алууга мүмкүндүк берет

Qualys Glibc системасынын C китепканасынын (GNU libc) бөлүгү катары берилген ld.so шилтемесинде кооптуу аялуулугун (CVE-2023-4911) аныктады. Алсыздык жергиликтүү колдонуучуга GLIBC_TUNABLES чөйрө өзгөрмөсүндө атайын форматталган маалыматтарды көрсөтүү аркылуу системадагы артыкчылыктарын жогорулатууга мүмкүндүк берет, мисалы, /usr/bin/su, suid root желеги менен аткарылуучу файлды иштетүү.

Алсыздыкты ийгиликтүү пайдалануу мүмкүнчүлүгү Fedora 37 жана 38, Ubuntu 22.04 жана 23.04, Debian 12 жана 13 версияларында көрсөтүлгөн. Алсыздык Glibc колдонгон башка дистрибуцияларда да пайда болот деп болжолдонууда. Alpine Linux сыяктуу Musl системасынын C китепканасына негизделген жайылтууларга көйгөй таасир этпейт. Алсыздык 2-октябрда кошулган патчта оңдолду. Сиз Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo, ALT Linux баракчаларында бөлүштүрүүлөрдө пакет жаңыртууларынын чыгарылышын көзөмөлдөй аласыз.

Алсыздык 2021-жылдын апрелинде glibc 2.34 релизинин бөлүгү катары киргизилген өзгөртүүгө байланыштуу. GLIBC_TUNABLES чөйрө өзгөрмөсүндө көрсөтүлгөн сап талдоо кодундагы катадан улам, бул өзгөрмөдөгү параметрлердин туура эмес айкалышы талданган маанинин бөлүнгөн буферден тышкары жазылышына алып келет. Көйгөй стандарттык “аты=val” ырааттуулугунун ордуна “аты=аты=val” кош дайындоосу менен формада көрсөтүлгөндө пайда болот. Бул учурда, тапшырма эки жолу иштетилет, адегенде "аты=аты=val" жана андан кийин "аты=val". Бул кош кайра иштетүү tunestr буферинин өлчөмүнөн чоңураак "name=name=val:name=val" натыйжасын чыгарат.

Изилдөөчүлөр suid root желеги бар дээрлик бардык программалар менен колдонулганда тамыр укуктарына ээ болууга мүмкүндүк берген туруктуу эксплуатацияны даярдашты. Өзгөчөлүктөр болуп sudo утилитасы (ELF RUNPATH маанисин өзгөртөт), Fedoraдагы chage жана passwd утилиталары (өзүнчө SELinux эрежелери менен корголгон) жана Ubuntuдогу snap-confine утилитасы (өзүнчө AppArmor эрежелери менен корголгон). Сунушталган эксплуатация ыкмасы RHEL 8 жана RHEL 9да да иштебейт, бирок бул бутактар ​​алсыздыктарга дуушар болушат (чабуул башка эксплуатацияны түзүүнү талап кылат). Эксплуатация коду кийинчерээк бардык жерде кемчиликтер оңдолгондон кийин жарыяланат. Сиз төмөнкү буйрукту колдонуп, системаңыздын алсыздыкка карата аялуулугун текшере аласыз, ал көйгөй болсо бузулат: env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help

Өзүнчө, Glibc дагы эки алсыздыкты жоюу белгиленген:

  • CVE-2023-4806 – NSS плагини “_gethostbyname2_r” жана “_getcanonname_r” кайра чалууларды гана ишке ашырганда пайда болгон, бирок “ _gethostbyname3_r” колдобогон getaddrinfo() функциясында эстутумдан кийин бош колдонуу мүмкүнчүлүгү. Абалдан пайдалануу үчүн, DNS сервери суралган хост үчүн көп сандагы IPv6 жана IPv4 даректерин кайтарышы керек, бул AI_CANONNAME, AI_ALL жана AI_V6MAPPED желектери болгондо AF_INET4 үй-бүлөсү үчүн getaddrinfo функциясын чакырган процесстин бузулушуна алып келет. коюу.
  • CVE-2023-5156 – Getaddrinfo функциясы AI_CANONNAME, AI_ALL жана AI_V6MAPPED желекчелери коюлган AF_INET4 даректер үй-бүлөсү үчүн чакырылганда эстутум агып кетет.

Source: opennet.ru

Комментарий кошуу