Уязвимость в NetworkManager-libreswan и Guix-daemon, позволяющие повысить привилегии в системе

В плагине NetworkManager-libreswan, добавляющем в NetworkManager функциональность для подключения к VPN, совместимым с серверами на базе Libreswan и Cisco IPsec, выявлена уязвимость (CVE-2024-9050), которая может использоваться для повышения локальным пользователем своих привилегий. Уязвимость устранена в обновлении NetworkManager-libreswan 1.2.24. Проследить за появлением обновлений в дистрибутивах можно на следующих страницах: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora.

Проблема вызвана некорректной проверкой конфигурации VPN, определяемой локальным непривилегированным пользователем и передаваемой напрямую в Libreswan при попытке активации соединения. В частности, в плагине не выполнялась проверка использования escape-символов, таких как перевод строки “n”, которые могли применяться для разделения отдельных настроек, указанных в одной строке.

Соответственно, атакующий мог указать в составе одного из разрешённых параметров параметр “leftupdown”, запрещённый для непривилегированных пользователей и задающий скрипт, выполняемый с правами root в процессе установки соединения. Например, для запуска программы /bin/true к разрешённому параметру “hostaddrfamily” можно прикрепить следующие настойки:

hostaddrfamily=ipv4n leftupdown=/bin/truen ikev2=nevern
leftxauthclient=yesn leftusername=usernamen phase2alg=aes256-sha1n
authby=secretn left=%defaultrouten leftmodecfgclient=yesn
right=172.31.79.2nconn ign

Ещё одна уязвимость выявлена в фоновом процессе guix-daemon, применяемом в дистрибутивах на базе пакетного менеджера GNU Guix. Уязвимость представляет опасность для многопользовательских систем и позволяет локальному пользователю получить привилегии любого пользователя, выполняющего сборку пакетов (build user), и внести изменения в результат сборки. Суть уязвимости в том, что атакующий может запустить производную сборку и если сборочный процесс будет прерван, уже созданные suid-файлы останутся доступны остальным пользователям системы. После этого атакующий может воспользоваться созданный suid-файлом для приостановки сборочного процесса, открытия любого файла через /proc/$PID/fd с правами выполняющего сборку пользователя и перезаписать файлы c результатами сборки).

Release. Ссылка here.