V
Сканер-ВС
ГлавнаяКаталогИсточникиCWECAPECATT&CKМеры защитыПродуктыВендорыДокументация
← Вернуться к списку
CanonicalДистрибутивubuntu

Rust-wasmtime

Уязвимости
8
Эксплуатируемые
0
Макс. CVSS
5.5
Макс. EPSS
0.00812

Распределение по критичности

Критический
0
Высокий
0
Средний
3
Низкий
5
Также сопоставлено как (исходные строки): rust-wasmtime

Топ уязвимостей

CVE-2024-47763Wasmtime — это среда выполнения с открытым исходным кодом для WebAssembly. Реализация хвостовых вызовов WebAssembly в Wasmtime в сочетании со стеком трассировок может привести к сбою среды выполнения в определенных модулях WebAssembly. Сбой среды выполнения может быть неопределенным поведением, если Wasmtime был скомпилирован с Rust 1.80 или более ранней версии. Сбой среды выполнения — это детерминированный процесс прерывания, когда Wasmtime скомпилирован с Rust 1.81 и более поздних версий. Хвостовые вызовы WebAssembly — это предложение, которое относительно недавно достигло 4-й стадии в процессе стандартизации. Wasmtime впервые включил поддержку хвостовых вызовов по умолчанию в Wasmtime 21.0.0, хотя этот выпуск содержал ошибку, из-за которой он был включен по умолчанию только для некоторых конфигураций. В Wasmtime 22.0.0 хвостовые вызовы были включены по умолчанию для всех конфигураций. Конкретный сбой происходит, когда экспортированная функция в модуле WebAssembly (или компоненте) выполняет `return_call` (или `return_call_indirect` или `return_call_ref`) в импортированную хост-функцию, которая захватывает стек трассировок (например, хост-функция вызывает ловушку). В этой ситуации код обхода стека ранее предполагал, что в стеке всегда есть хотя бы один кадр WebAssembly, но с хвостовыми вызовами это уже не так. С предложением хвостового вызова возможно, что входной трамплин выглядит так, как если бы он напрямую вызывал выходной трамплин. Эта ситуация вызывает внутреннее утверждение в коде обхода стека, которое вызывает Rust `panic!()`. Когда Wasmtime скомпилирован с версиями Rust 1.80 и более ранними, это означает, что функция `extern "C"` в Rust вызывает `panic!()`. Технически это неопределенное поведение, которое обычно проявляется как прерывание процесса, когда раскрутчик не может раскрутить кадры, сгенерированные Cranelift. Когда Wasmtime скомпилирован с версиями Rust 1.81 и более поздними, эта паника становится детерминированным процессом прерывания. В целом, влияние этой проблемы заключается в том, что это вектор отказа в обслуживании, когда вредоносный модуль или компонент WebAssembly может вызвать сбой хоста. В настоящее время нет никакого другого воздействия, кроме доступности сервиса, поскольку результатом сбоя всегда является сбой и не более того. Эта проблема была обнаружена в результате рутинного фаззинга, выполненного проектом Wasmtime через инфраструктуру OSS-Fuzz Google. У нас нет доказательств того, что она когда-либо была использована злоумышленником в дикой природе. Все версии Wasmtime, в которых хвостовые вызовы включены по умолчанию, были исправлены: * 21.0.x - исправлено в 21.0.2 * 22.0.x - исправлено в 22.0.1 * 23.0.x - исправлено в 23.0.3 * 24.0.x - исправлено в 24.0.1 * 25.0.x - исправлено в 25.0.2. Версии Wasmtime с 12.0.x (первый выпуск с экспериментальной поддержкой хвостовых вызовов) по 20.0.x (последний выпуск с выключенными по умолчанию хвостовыми вызовами) имеют поддержку хвостовых вызовов, но поддержка отключена по умолчанию. Эти версии не затронуты в своих конфигурациях по умолчанию, но пользователям, которые явно включили поддержку хвостовых вызовов, необходимо либо отключить поддержку хвостовых вызовов, либо обновиться до исправленной версии Wasmtime. Основным обходным путем для этой проблемы является отключение поддержки хвостовых вызовов в Wasmtime, например, с помощью `Config::wasm_tail_call(false)`. Пользователям в противном случае рекомендуется обновиться до исправленных версий.
CVE-2024-30266wasmtime — это среда выполнения для WebAssembly. Выпуск Wasmtime 19.0.0 содержит регрессию, появившуюся во время его разработки, которая может привести к тому, что гостевой модуль WebAssembly вызовет панику в хост-среде выполнения. Допустимый модуль WebAssembly, выполняемый во время выполнения, может вызвать эту панику. Эта уязвимость была исправлена в версии 19.0.1.
CVE-2023-41880Wasmtime — это автономная среда выполнения для WebAssembly. Версии Wasmtime с 10.0.0 по версии 10.02, 11.0.2 и 12.0.1 содержат неправильную компиляцию инструкции WebAssembly `i64x2.shr_s` на платформах x86_64, когда величина сдвига является константой, которая больше 32. Затронута только x86_64, поэтому все остальные цели не затронуты этим. Неправильная компиляция приводит к тому, что инструкция выдает неверный результат, а именно младшие 32 бита второй полосы вектора берутся из младших 32 бит второй полосы входного вектора, а не из старших 32 бит. Основное воздействие этой проблемы заключается в том, что любая программа WebAssembly, использующая `i64x2.shr_s` с постоянной величиной сдвига, превышающей 32, может выдать неверный результат. Эта проблема не является выходом из песочницы WebAssembly. Выполнение гостевых программ WebAssembly по-прежнему будет вести себя правильно в отношении песочницы памяти и изоляции от хоста. Wasmtime тем не менее считает поведение, не соответствующее спецификациям, проблемой безопасности. Эта проблема была обнаружена путем фаззинга генератора кода Wasmtime Cranelift. Версии Wasmtime 10.0.2, 11.0.2 и 12.0.2 исправлены и больше не имеют этой неправильной компиляции. Эта проблема затрагивает только хосты x86_64, и единственным обходным решением является либо сканирование этой закономерности в модулях wasm, что нетривиально, либо отключение предложения SIMD для WebAssembly. Пользователи до 10.0.0 не подвержены этой уязвимости.
CVE-2025-53901В Wasmtime, среде выполнения для WebAssembly, выявлена уязвимость, связанная с реализацией набора функций WASIp1. Злоумышленник может спровоцировать панику в хост-приложении, используя специально сформированные вызовы функций fd_renumber и path_open. Это может привести к отказу в обслуживании, но не позволяет WebAssembly выйти за пределы песочницы или вызвать повреждение памяти. Технические детали: паника происходит из-за повреждения состояния в fd_renumber, что приводит к сбою при последующем открытии файлового дескриптора. Для эксплуатации требуется возможность открыть файловый дескриптор и вызвать fd_renumber с определенными аргументами. Патчи доступны в версиях 24.0.4, 33.0.2 и 34.0.2. В качестве обходного пути можно использовать компоненты или не предоставлять доступ к созданию файловых дескрипторов. Источники: - [1] https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-fm79-3f68-h2fc - [2] https://docs.wasmtime.dev/security-what-is-considered-a-security-vulnerability.html - [3] https://docs.wasmtime.dev/stability-release.html - [4] https://github.com/WebAssembly/WASI/blob/e1aa1cae4dda4c1f70f23fe11e922aae92f240a8/legacy/preview1/witx/wasi_snapshot_preview1.witx#L245-L260 - [5] https://github.com/bytecodealliance/wasmtime/blob/037a6edadbc225decbea00a551aabf04203717d9/crates/wasi/src/preview1.rs#L1824-L1836
CVE-2024-47813Wasmtime — это среда выполнения с открытым исходным кодом для WebAssembly. При определенных порядках параллельных событий внутренний реестр типов `wasmtime::Engine` был подвержен ошибкам двойной отмены регистрации из-за состояния гонки, что приводило к панике и потенциальному повреждению реестра типов. Это повреждение реестра могло, после дополнительной и конкретной последовательности параллельных событий, привести к нарушениям целостности потока управления (CFI) и безопасности типов WebAssembly. Пользователи, которые не используют `wasmtime::Engine` в нескольких потоках, не подвержены этой проблеме. Пользователи, которые только создают новые модули в потоках с течением времени, также не подвержены этой проблеме. Для воспроизведения этой ошибки требуется создание и удаление нескольких экземпляров типов (например, `wasmtime::FuncType` или `wasmtime::ArrayType`) одновременно в нескольких потоках, где все типы связаны с одним и тем же `wasmtime::Engine`. **Гости Wasm не могут вызвать эту ошибку.** См. раздел "Ссылки" ниже для получения списка API, связанных с типами Wasmtime, которые подвержены этой проблеме. Wasmtime поддерживает внутренний реестр типов в `wasmtime::Engine`, и движок можно совместно использовать в потоках. Типы можно создавать и ссылаться на них путем создания `wasmtime::Module`, создания `wasmtime::FuncType` или ряда других API, где хост создает функцию (см. раздел "Ссылки" ниже). Каждый из этих случаев взаимодействует с движком для дедупликации информации о типах и управления индексами типов, которые используются для реализации проверок типов в функции `call_indirect` WebAssembly, например. Эта ошибка — состояние гонки в этом управлении, когда внутренний реестр типов может быть поврежден, чтобы вызвать утверждение или содержать недействительное состояние. Внутреннее представление типа Wasmtime имеет отдельные типы (например, один на функцию хоста), поддерживающие счетчик регистрации того, сколько раз он использовался. Типы также имеют состояние внутри движка за блокировкой чтения-записи, например, информация о поиске/дедупликации. Гонка здесь — это ошибка времени проверки и времени использования (TOCTOU), когда один поток атомарно уменьшает счетчик регистрации записи типа, наблюдает нулевые регистрации, а затем получает блокировку, чтобы отменить регистрацию этой записи. Однако между тем, когда этот первый поток наблюдал счетчик нулевой регистрации, и тем, когда он получает эту блокировку, другой поток может выполнить следующую последовательность событий: повторно зарегистрировать другую копию типа, которая дедуплицируется в ту же запись, воскрешая ее и увеличивая счетчик регистрации; затем удалить тип и уменьшить его счетчик регистрации; наблюдать, что счетчик регистрации теперь равен нулю; получить блокировку реестра типов; и, наконец, отменить регистрацию типа. Теперь, когда исходный поток, наконец, получает блокировку и отменяет регистрацию записи, это второй раз, когда эта запись была отменена. Эта ошибка была первоначально внесена в разработку Wasmtime 19 предложения WebAssembly GC. Однако эта ошибка затрагивает пользователей, которые не используют предложение GC, и затрагивает Wasmtime в его конфигурации по умолчанию, даже когда предложение GC отключено. Пользователи Wasmtime, использующие 19.0.0 и более поздние версии, подвержены этой проблеме. Мы выпустили следующие версии Wasmtime, в каждой из которых есть исправление этой ошибки: * 21.0.2 * 22.0.1 * 23.0.3 * 24.0.1 * 25.0.2. Если ваше приложение создает и удаляет типы Wasmtime в нескольких потоках одновременно, нет известных обходных путей. Пользователям рекомендуется обновить до исправленной версии.
CVE-2024-51745Wasmtime — это быстрая и безопасная среда выполнения для WebAssembly. Реализация файловой системы Wasmtime в Windows блокирует доступ к специальным именам файлов устройств, таким как «COM1», «COM2», «LPT0», «LPT1» и т. д., однако она не блокировала доступ к специальным именам файлов устройств, в которых используются надстрочные цифры, таким как «COM¹», «COM²», «LPT⁰», «LPT¹» и т. д. Ненадежные программы Wasm, которым предоставлен доступ к любому каталогу файловой системы, могут обойти песочницу и получить доступ к устройствам через эти специальные имена файлов устройств с надстрочными цифрами и через них получить доступ к периферийным устройствам, подключенным к компьютеру, или к сетевым ресурсам, сопоставленным с этими устройствами. Это может включать модемы, принтеры, сетевые принтеры и любые другие устройства, подключенные к последовательному или параллельному порту, включая эмулируемые последовательные порты USB. Выпущены патчи для Wasmtime: 24.0.2, 25.0.3 и 26.0.1. Пользователям Wasmtime 23.0.x и более ранних версий рекомендуется обновиться до одной из этих исправленных версий. Для этой проблемы нет известных обходных путей. Затронутым пользователям Windows рекомендуется обновиться.
CVE-2025-62711Wasmtime - это время работы для WebAssembly. В версиях с 38.0.0 до 38.0.3 реализация батутов, связанных с компонентной модели host-to-wasm в Wasmtime, содержала ошибку, где можно тщательно создать компонент, который при конкретном вызове вызовет, приведет к тому, что хозяин разбил бы сегфильство или утверждал неудачу. Wasmtime 38.0.3 был выпущен и исправлен, чтобы исправить эту проблему. Никаких обходных сил не существует.
CVE-2025-64345Wasmtime - это время работы для WebAssembly. До версий 38.0.4, 37.0.3, 36.0.3 и 24.0.5, API встраивного расширения Wasmtime's Rust содержит необоснованное взаимодействие, в котором линейная память WebAssembly может рассматриваться как тип, который обеспечивает безопасный доступ к хостру (Ржавчине) к содержимому линейной памяти. Это не так для общих линейных воспоминаний, которые могут быть изменены параллельно, и это может привести к гонке данных в хоста. Были выпущены патч-релизы для всех поддерживаемых версий Wasmtime, в частности: 24.0.5, 36.0.3, 37.0.3 и 38.0.4. Эти релизы отвергают создание общих воспоминаний через `Memory::new` и общие воспоминания теперь исключены из основных дампов. В качестве обходного действия, затронутые этой проблемой, должны использовать «SharedMemory::new` вместо `Memory::new`» для создания общих воспоминаний. Пострадавшие встраивания также должны отключать основные свалки, если они не могут обновиться. Обратите внимание, что отбросы ядра отключены по умолчанию, но предложение потоков Wasm (и общая память) включено по умолчанию.
Перейти к вендору →Открыть в каталоге с фильтром по продукту →