Уязвимость библиотеки Rust грозит удалением системных файлов и папок

Уязвимость библиотеки Rust грозит удалением системных файлов и папок

Уязвимость библиотеки Rust грозит удалением системных файлов и папок

Кураторы проекта обновили стандартную библиотеку языка Rust, устранив уязвимость, позволяющую злоумышленнику удалить системные файлы или каталог по своему выбору.

Согласно информационному бюллетеню, уязвимость CVE-2022-21658, оцененная в 7,3 балла по CVSS, связана с возможностью атаки TOCTOU (Time-of-Check Time-of-Use) во время выполнения функции std::fs::remove_dir_all. Из-за некорректной реализации обработки симлинков возникает состояние гонки между проверкой этого условия и использованием результатов — стиранием данных.

Как оказалось, вместо блокировки перехода по символическим ссылкам функция remove_dir_all() вначале проверяет, является ли целевой объект таким указателем. При положительном результате файл удаляется, в противном случае происходит запуск рекурсивного удаления содержимого каталога; таким образом, эта операция выполняется с небольшой задержкой.

В итоге злоумышленник с минимальными правами в системе может отыскать в ней подходящее привилегированное приложение, создать папку временных файлов и в нужный момент заменить ее симлинком. Успех атаки в данном случае зависит от точности выбора времени подмены; в случае успеха эксплойт отрабатывает за несколько секунд.

Уязвимости подвержены все выпуски Rust с 1.0.0 по 1.58.0. Патч включен в состав обновления 1.58.1, вышедшего на прошлой неделе, и доступен для ряда кастомных средств программирования. Примечательно, что установка заплатки не способна решить проблему в ОС REDOX и macOS версий ниже 10.10 (Yosemite).

Little Snitch пришёл на Linux на фоне нового интереса к контролю трафика

Знаменитый сетевой инструмент Little Snitch, который много лет ассоциировался только с macOS, теперь добрался и до Linux. Разработчик объясняет это шаг тем, что в мире, где всё больше спорят о доверии к софту, обновлениям и контролю над устройствами, идея открытой и менее централизованной платформы начинает выглядеть для многих заметно привлекательнее.

На этом фоне он решил попробовать пожить с Linux как с основной системой и быстро упёрся в знакомую проблему: без Little Snitch там не хватает удобной, наглядной прозрачности по сетевой активности приложений.

По сути, Little Snitch для Linux делает то, за что его любят на macOS: показывает, какие процессы выходят в Сеть, и позволяет это оперативно ограничивать. Но технически новая версия устроена уже по-другому.

 

Инструмент использует eBPF для работы на уровне ядра, написан на Rust, а интерфейс выполнен в виде веб-приложения. Такой подход позволяет, например, наблюдать за удалённым Linux-сервером с другого устройства, не городя отдельную тяжёлую схему управления.

При этом разработчик отдельно подчёркивает, что это не «абсолютный щит» от всего на свете, а скорее инструмент видимости и контроля.

Часть проекта уже открыта: разработчик вынес в open source, в частности, eBPF-компонент и интерфейс. А вот бэкенд, который отвечает за правила и анализ соединений, пока остаётся закрытым. Это, судя по описанию, сознательное решение: именно там сосредоточена значительная часть накопленной за годы логики Little Snitch.

RSS: Новости на портале Anti-Malware.ru