Уязвимость библиотеки 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).

Собери свой Telegram: энтузиасты выкатили открытый сервер Opengram

У Telegram появился неожиданный конкурент. Точнее не конкурент, а возможность собрать собственный Telegram у себя дома или в корпоративном дата-центре. Группа энтузиастов представила проект Opengram — открытую реализацию серверной части популярного мессенджера.

Opengram позволяет развернуть собственный сервер, совместимый с официальными клиентами Telegram.

После замены адреса дата-центра и RSA-ключа пользователи смогут подключаться к нему через привычные приложения Telegram для десктопа и смартфонов.

Проект написан на C# и .NET 9 и опубликован на GitHub. В его основе лежит форк более раннего проекта mytelegram. При этом разработчики пока не указали лицензию для своего репозитория, что уже вызвало вопросы в сообществе. Дело в том, что оригинальный mytelegram распространяется по лицензии Apache 2.0, которая требует сохранять текст лицензии в производных работах.

По функциональности Opengram выглядит амбициозно. Разработчики заявляют поддержку личных сообщений, групп, супергрупп и каналов, секретных чатов со сквозным шифрованием, голосовых и видеозвонков, ботов, двухфакторной аутентификации, историй, реакций, стикеров и кастомных эмодзи.

Не забыли даже про относительно новые функции Telegram вроде звёзд (Stars), цифровых подарков Star Gifts и самоудаляющихся сообщений.

Под капотом проект напоминает полноценную корпоративную платформу. Архитектура состоит из набора микросервисов: отдельных компонентов для авторизации, хранения сессий, обработки сообщений, работы ботов, звонков и файлового хранилища. Для инфраструктуры используются MongoDB, Redis, RabbitMQ и MinIO, а запуск всей системы организован через Docker Compose.

По сути, Opengram пытается решить задачу, которую многие считали невозможной: создать независимую серверную реализацию Telegram, сохранив совместимость с официальными клиентами.

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

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