Rust — это многопарадигменный язык программирования общего назначения, разработанный для обеспечения производительности и безопасности, осо…
Rust — это многопарадигменный язык программирования общего назначения, разработанный для обеспечения производительности и безопасности, особенно безопасной параллельности. Рабочая группа Rust по реагированию на инциденты безопасности была уведомлена о том, что стандартная библиотечная функция `std::fs::remove_dir_all` уязвима для состояния гонки, позволяющего переходить по символическим ссылкам (CWE-363). Злоумышленник может использовать эту проблему безопасности, чтобы обманом заставить привилегированную программу удалить файлы и каталоги, к которым злоумышленник в противном случае не смог бы получить доступ или удалить их. Rust 1.0.0 — Rust 1.58.0 подвержены этой уязвимости, а 1.58.1 содержит исправление. Обратите внимание, что следующие цели сборки не имеют пригодных для использования API для надлежащего устранения атаки и, следовательно, остаются уязвимыми даже с исправленным набором инструментов: macOS до версии 10.10 (Yosemite) и REDOX. Мы рекомендуем всем как можно скорее обновиться до Rust 1.58.1, особенно людям, разрабатывающим программы, которые должны работать в привилегированном контексте (включая системные демоны и исполняемые файлы setuid), поскольку они подвергаются наибольшему риску пострадать от этого. Обратите внимание, что добавление проверок в ваш код перед вызовом remove_dir_all не смягчит уязвимость, поскольку они также будут уязвимы для состояний гонки, как и сама remove_dir_all. Существующее смягчение работает должным образом вне состояний гонки.
Продукт проверяет статус файла или каталога перед обращением к нему, что создаёт состояние гонки, при котором файл может быть заменён символической ссылкой до выполнения обращения, вынуждая продукт работать с другим файлом.
https://cwe.mitre.org/data/definitions/363.html →Открыть в коллекции CWE →Злоумышленник нацеливается на состояние гонки, возникающее когда несколько процессов одновременно обращаются к одному ресурсу и манипулируют им, а результат выполнения зависит от конкретного порядка этих обращений. Злоумышленник может эксплуатировать состояние гонки, «участвуя в гонке»: изменяя ресурс и нарушая нормальный порядок выполнения. Например, состояние гонки может возникнуть при обращении к файлу: злоумышленник может обмануть систему, подменив исходный файл своей версией и заставив систему прочитать вредоносный файл.
https://capec.mitre.org/data/definitions/26.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| rustc | Отслеживается | |
| fedora | * | Отслеживается |
| ipados | * | Отслеживается |
| iphone_os | * | Отслеживается |
| macos | * | Отслеживается |
| rust | * | Отслеживается |
| tvos | * | Отслеживается |
| watchos | * | Отслеживается |