Преди няколко дни фирмата за киберсигурност Qualys разкриха чрез публикация в блога откриването на два гробуязвимости, които засягат директно до apport и systemd-coredump, инструменти, широко използвани в Linux системи за управление на дъмпове на паметта след сривове на процеси.
Фаласите, идентифицирани като CVE-2025-5054 и CVE-2025-4598, излагат различни дистрибуции на сериозни рискове от изтичане на поверителни данни, съхранявани в паметта на привилегированите процеси.
Скритият риск в сметищата
така принос (използва се главно в Ubuntu) като systemd-coredump (използвани в Red Hat, Fedora и други дистрибуции) са отговорни за обработката на основните файлове, генерирани след системна повреда. Тези инструменти обаче Те представляват състезателно условие, което може да бъде използвано от нападател. да имат достъп до тези файлове, дори когато те идват от SUID приложения или системни процеси с повишени привилегии.
Дъмповете на паметта могат да съдържат изключително чувствителна информация., като например хешове на пароли, извлечени от /etc/shadow, кеширани ключове за криптиране или данни за удостоверяване. Ако атакуващ успешно използва тези уязвимости, той може да прочете тези дъмпове като обикновен потребител, заобикаляйки ограниченията, които би трябвало да ограничават достъпа само до системния администратор.
Използването на уязвимости в Apport и systemd-coredump може сериозно да компрометира поверителността. Последиците включват оперативни прекъсвания, щети за репутацията и потенциално несъответствие с регулаторните изисквания.
Как да се възползваме от недостатъците в Apport?
Векторът на атака срещу apport включва сложна техника:
- Стартира се процес с suid привилегии, като например unix_chkpwd, който осъществява достъп до чувствителни данни в паметта.
- Преди да приключи изпълнението му, то се прекъсва със сигнал като SIGSEGV, за да се предизвика неуспех.
- Това активира системата за извличане на паметта на Ubuntu, която автоматично стартира apport.
- В краткия интервал преди apport да анализира дъмпа, атакуващият замества процеса suid с нормален, използвайки отделни пространства от имена и PID манипулации, за да заблуди системата.
- В резултат на това, apport обработва и запазва дъмпа на паметта с нормални разрешения, позволявайки на атакуващия потребител свободно да има достъп до съдържанието му.
Този метод Доказано е успешно в Ubuntu 24.04, което показва, че други версии и дистрибуции с подобно поведение също може да са изложени на риск.
Атаки, насочени към systemd-coredump: по-малко стъпки, същата опасност
В случая на systemd-coredump, атаката е по-директна. и не изисква замяна на процеси в отделни пространства от имена. Просто създайте съвпадение между AT_UID и AT_EUID, койтоТова ви позволява да манипулирате интерпретацията на процеса което е причинило срива. Въпреки че systemd-coredump се стартира по-бързо, тъй като е написан на C, е възможно изкуствено да се забави. Предаването на голям брой аргументи на процеса suid увеличава времето за обработка на cmdline файла, генерирайки интервала от време, необходим за изпълнение на заместването.
Освен това, изследователите откриха, че systemd-coredump не използва правилно флага %d в core_pattern, което позволява атаки срещу системни процеси, които не са SUID, като sshd-session, sd-pam или cron. Този пропуск отваря вратата за извличане на частни ключове, данни от стека, хешове на пароли и стойности, използвани за заобикаляне на защити като ASLR.
Смекчаване и препоръчителни мерки
Предвид сериозността на проблема, се препоръчват незабавни действия:
- Деактивиране на дъмповете на паметта за suid програми: Това може да се постигне чрез задаване на параметъра suid_dumpable на 0, което предотвратява генерирането на достъпни дъмпове от тези процеси.
- Актуализирайте засегнатите пакети: Основните дистрибуции вече подготвят актуализации за отстраняване на тези уязвимости.
Въпреки че смекчаването на уязвимостта е първа стъпка, се споменава, че решението изисква модификации на ядрото на Linux. По-специално, Препоръчително е да се внедри система, която използва pidfd вместо традиционните pid идентификатори, тъй като pidfd е обвързан със специфични процеси и не се преназначава. Това би предотвратило поемането на контрол над даден процес през времевия прозорец между срива и създаването на дъмпа.
И накрая, ако се интересувате да научите повече за него, можете да се консултирате с подробностите в следваща връзка.