Опасные уязвимости в Firejail, Connman и GNU Guix

В системе для изолированного выполнения приложений Firejail выявлена уязвимость (CVE-2021-26910), позволяющая повысить свои привилегии до пользователя root. Firejail использует для изоляции механизм пространств имён (namespaces), AppArmor и фильтрацию системных вызовов (seccomp-bpf) в Linux, но для настройки изолированного запуска требует повышенных привилегий, которые получает через привязку к утилите флага suid root или запуск при помощи sudo.

Уязвимость вызвана недоработкой в коде для поддержки файловой системы OverlayFS, которая используется для создания поверх основной ФС дополнительного слоя для сохранения изменений, произведённых изолированным процессом. Подразумевается, что изолированный процесс получает доступ на чтение к основной ФС, а все операции записи перенаправляются во временное хранилище и не влияют на реальную основную ФС. По умолчанию разделы OverlayFS монтируются в домашнем каталоге пользователя, например, внутри “/home/test/.firejail/[name]”, при том, что владельцем данных каталогов устанавливается root, чтобы текущий пользователь не смог напрямую изменить их содержимое.

При настройке изолированного окружения, Firejail проверяет, чтобы корень временного раздела OverlayFS не был доступен на запись непривилегированному пользователю. Уязвимость вызвана состоянием гонки, связанным с тем, что операции выполняются не атомарно и между проверкой и монтированием остаётся короткий момент, позволяющий подменить принадлежащий root каталог .firejail на каталог в который имеет право записи текущий пользователь (так как .firejail создан в каталоге пользователя, пользователь может его переименовать). Наличие доступа на запись в каталог .firejail позволяет подменить точки монтирования OverlayFS символической ссылкой и добиться изменения любых файлов в системе.

Исследователем подготовлен рабочий прототип эксплоита, который будет опубликован через неделю после публикации исправления. Проблема проявляется начиная с версии 0.9.30. В выпуске 0.9.64.4 уязвимость блокирована через отключение поддержки OverlayFS. Для блокирования уязвимости обходным путём также можно отключить OverlayFS через добавление в /etc/firejail/firejail.config параметра “overlayfs” со значением “no”.

Вторая опасная уязвимость (CVE-2021-26675) выявлена в сетевом конфигураторе ConnMan, получившем распространение во встраиваемых Linux-системах и устройствах интернета вещей. Уязвимость потенциально позволяет удалённо организовать выполнение кода атакующего. Проблема вызвана переполнением буфера в коде dnsproxy и может быть эксплуатирована через возвращение специально оформленных ответов со стороны DNS-сервера, на перенаправление трафика к которому настроен DNS-прокси. Информация о проблеме поступила от компании Tesla, которая использует ConnMan. Уязвимость устранена во вчерашнем выпуске ConnMan 1.39.

В завершении можно отметить проблему с безопасностью в дистрибутиве GNU Guix System, связанную с особенностью размещения suid-root-файлов в каталоге /run/setuid-programs. Большая часть программ в данном каталоге поставлялась под флагами setuid-root и setgid-root, но не была рассчитана на работу с setgid-root, что потенциально могло использоваться для повышения привилегий в системе.

Release. Ссылка here.