Qualys Glibc стандарттык C китепканасында кооптуу аялуу жерди (CVE-2023-6246) аныктады, ал SUID тиркемелерин ишке киргизүү менен манипуляциялар аркылуу жогорулатылган артыкчылыктар менен кодуңузду аткарууга мүмкүндүк берет. Изилдөөчүлөр su утилитасын иштетип жатканда буйрук сабынын аргументтерин манипуляциялоо аркылуу тамыр укуктарына ээ болууга мүмкүндүк берген жумушчу эксплойт иштеп чыга алышты.
Алсыздык syslog() жана vsyslog() функцияларын чакырганда колдонулган __vsyslog_internal() функцияларындагы буфердин толуп кетишинен келип чыгат. Көйгөй SYSLOG_HEADER макроосу аркылуу өтө узун колдонмо атын чыгарууга аракет кылган катадан улам келип чыгат. Узун атка негизделген буферди кеңейтүүгө аракет кылганда, ката пайда болот, андан кийин маалыматтар баштапкы кичине өлчөмдөгү эски буферге жазылат.
Сути утилитасы аркылуу чабуулду уюштурууда чабуулчу, журналга чыгарууда программанын аталышы жөнүндө маалыматты алуу үчүн колдонулган argv[0] маанисин алмаштыруу менен тиркеме ишке киргенде процесстин атын өзгөртө алат жана башкарылуучу бөлүнгөн буферден тышкары маалыматтарды кайра жазуу. Андан кийин ашыкча nss китепканасындагы nss_module түзүмүн кайра жазуу үчүн жалпы китепкана түзүү жана аны тамыр катары жүктөө үчүн колдонсо болот.
Бул маселе 2.37-жылдын августунда жарыяланган glibc 2022 чыккандан бери бар, анда өтө чоң билдирүүлөрдү жазуу аракети кырдаалын жөнгө салуу үчүн өзгөртүү киргизилген. Оңдоо glibc 2.36 жана glibc'тин эски версиялары менен бөлүштүрүү топтомдоруна кайтарылган, анткени оңдоо CVE-2022-39046 үймөгүнүн агызылышынын аялуулугун караган. Коркунучтуу эмес алсыздыкты оңдоо олуттуу көйгөйдүн пайда болушуна алып келгени белгилүү болду. Белгилей кетчү нерсе, libc 5.4.3 китепканасынын vsyslog() функциясынын ушундай эле алсыздыгы 1997-жылы эле билдирилген.
Алсыздык тастыкталды Debian 12 / 13, Ubuntu 23/10/23 жана Fedora 37-39. Артыкчылыксыз колдонуучуга root артыкчылыктарын алууга мүмкүндүк берген эксплойт толугу менен жаңыртылган Fedora 38 чөйрөсүндө демейки конфигурацияда бардык коргоо механизмдери иштетилген абалда көрсөтүлөт. Алсыздыкты жергиликтүү түрдө гана пайдаланууга болот, анткени ал argv[0] параметри же openlog() функциясындагы ident аргументи аркылуу 1024 байттан ашык өткөрүүнү талап кылат.
Абалын оңдоо бир нече саат мурун Glibc код базасына киргизилген жана эртеңки Glibc 2.39 жаңыртуусунун бир бөлүгү болуп калат, ошондой эле __vsyslog_internal() дагы эки алсыздыкты оңдоо (CVE-2023-6779, CVE-2023-6780) код жана буфердин толуп кетишине алып келет. Мындан тышкары, Qualys Glibc иштеп чыгуучулары тарабынан аялуу катары классификацияланбаган qsort() функциясын ишке ашырууда буфердин толуп кетишин аныктоо жөнүндө эскертти, анткени эксплуатация qsort чакырганда аргумент катары атиптик салыштыруу функциясын колдонууну камтыйт, ал айырманы кайтарат. салыштырылган параметрлер боюнча.
Дистрибуциялардагы алсыздыктарды оңдоонун абалын төмөнкү баракчалардан баалоого болот: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Төмөнкү буйрукту колдонуп, системаңыздын алсыздыгын текшере аласыз: $ (exec -a "`printf '%0128000x' 1`" /usr/bin/su < /dev/null)
Source: opennet.ru
