Qualys, Glibc sistem C kitabxanasının (GNU libc) bir hissəsi kimi təchiz edilmiş ld.so linkerində təhlükəli zəifliyi (CVE-2023-4911) müəyyən edib. Zəiflik yerli istifadəçiyə suid kök bayrağı ilə icra edilə bilən faylı işə salmazdan əvvəl, məsələn, /usr/bin/su GLIBC_TUNABLES mühit dəyişənində xüsusi formatlaşdırılmış məlumatları göstərərək sistemdəki imtiyazlarını yüksəltməyə imkan verir.
Возможность успешной эксплуатации уязвимости продемонстрирована в Fedora 37 и 38, Ubuntu 22.04 и 23.04, Debian 12 и 13. Предполагается, что уязвимость проявляется и в любых других дистрибутивах, использующих Glibc. Дистрибутивы на базе системной Си-библиотеки Musl, такие как Alpine Linux, проблеме не подвержены. Уязвимость устранена в патче, добавленном 2 октября. Проследить за выпуском обновлений пакетов в дистрибутивах можно на страницах Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo, ALT Linux.
Zəiflik 2021-ci ilin aprelində glibc 2.34 buraxılışının bir hissəsi kimi edilən dəyişikliklə bağlıdır. GLIBC_TUNABLES mühit dəyişənində göstərilən sətir təhlili kodundakı xətaya görə, bu dəyişəndə parametrlərin səhv birləşməsi təhlil edilmiş dəyərin ayrılmış buferdən kənara yazılmasına gətirib çıxarır. Problem standart “ad=val” ardıcıllıqlarının əvəzinə “ad=ad=val” qoşa təyinatı ilə formada parametrlər göstərildikdə özünü göstərir. Bu zaman tapşırıq iki dəfə işlənir, əvvəlcə “ad=ad=val”, sonra isə “ad=val” kimi. Bu ikiqat emal tunestr bufer ölçüsündən daha böyük olan "name=name=val:name=val" nəticəsini verir.
Исследователями подготовлен стабильно работающий эксплоит, который позволяет получить права root при применении практически с любой программой с флагом suid root. Исключение составляют утилита sudo (меняет значение ELF RUNPATH), утилиты chage и passwd в Fedora (защищены отдельными правилами SELinux) и утилита snap-confine в Ubuntu (защищена отдельными правилами 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-də ayrıca iki zəifliyin aradan qaldırılması qeyd olunur:
- CVE-2023-4806 – getaddrinfo() funksiyasında boş yaddaşdan istifadə imkanı, bu, NSS plagini yalnız “_gethostbyname2_r” və “_getcanonname_r” geri çağırışlarını həyata keçirdikdə baş verir, lakin “ _gethostbyname3_r” funksiyasını dəstəkləmir. Zəiflikdən istifadə etmək üçün DNS serveri tələb olunan host üçün çoxlu sayda IPv6 və IPv4 ünvanlarını qaytarmalıdır ki, bu da AI_CANONNAME, AI_ALL və AI_V6MAPPED bayraqları olduqda AF_INET4 ailəsi üçün getaddrinfo funksiyası adlandırılan prosesin sıradan çıxmasına səbəb olacaq. təyin edin.
- CVE-2023-5156 – AI_CANONNAME, AI_ALL və AI_V6MAPPED bayraqları ilə AF_INET4 ünvan ailəsi üçün getaddrinfo funksiyası çağırıldıqda yaddaş sızması baş verir.
Mənbə: opennet.ru
