Перейти к содержимому
Noroxi
CVE-2024-47813· NVD / CVE Program· CNA GitHub_M

Wasmtime race condition could lead to WebAssembly control-flow integrity and type safety violations

Оценка Noroxi

Приоритет: Наблюдать (оценка срочности 11/100)

  • В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
  • Вероятность эксплуатации в ближайшие 30 дней: 0,15% (FIRST EPSS).
  • Может быть вызвана пользователем с локальным доступом к системе. Требуются права администратора. Пользователь должен открыть ссылку или посетить страницу. Требуются особые условия, например определённое время или конфигурация.
  • Исправленная версия: wasmtime (crates.io) 21.0.2, 22.0.1, 23.0.3; rust-wasmtime (Debian:13) 21.0.2+dfsg-1.

Пока низкий приоритет. Обновитесь до wasmtime (crates.io) 21.0.2, 22.0.1, 23.0.3; rust-wasmtime (Debian:13) 21.0.2+dfsg-1 или новее.

Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем

Первоисточники: NVD · CVE.org · FIRST EPSS

Wasmtime is an open source runtime for WebAssembly. Under certain concurrent event orderings, a `wasmtime::Engine`'s internal type registry was susceptible to double-unregistration bugs due to a race condition, leading to panics and potentially type registry corruption. That registry corruption could, following an additional and particular sequence of concurrent events, lead to violations of WebAssembly's control-flow integrity (CFI) and type safety. Users that do not use `wasmtime::Engine` across multiple threads are not affected. Users that only create new modules across threads over time are additionally not affected. Reproducing this bug requires creating and dropping multiple type instances (such as `wasmtime::FuncType` or `wasmtime::ArrayType`) concurrently on multiple threads, where all types are associated with the same `wasmtime::Engine`. **Wasm guests cannot trigger this bug.** See the "References" section below for a list of Wasmtime types-related APIs that are affected. Wasmtime maintains an internal registry of types within a `wasmtime::Engine` and an engine is shareable across threads. Types can be created and referenced through creation of a `wasmtime::Module`, creation of `wasmtime::FuncType`, or a number of other APIs where the host creates a function (see "References" below). Each of these cases interacts with an engine to deduplicate type information and manage type indices that are used to implement type checks in WebAssembly's `call_indirect` function, for example. This bug is a race condition in this management where the internal type registry could be corrupted to trigger an assert or contain invalid state. Wasmtime's internal representation of a type has individual types (e.g. one-per-host-function) maintain a registration count of how many time it's been used. Types additionally have state within an engine behind a read-write lock such as lookup/deduplication information. The race here is a time-of-check versus time-of-use (TOCTOU) bug where one thread atomically decrements a type entry's registration count, observes zero registrations, and then acquires a lock in order to unregister that entry. However, between when this first thread observed the zero-registration count and when it acquires that lock, another thread could perform the following sequence of events: re-register another copy of the type, which deduplicates to that same entry, resurrecting it and incrementing its registration count; then drop the type and decrement its registration count; observe that the registration count is now zero; acquire the type registry lock; and finally unregister the type. Now, when the original thread finally acquires the lock and unregisters the entry, it is the second time this entry has been unregistered. This bug was originally introduced in Wasmtime 19's development of the WebAssembly GC proposal. This bug affects users who are not using the GC proposal, however, and affects Wasmtime in its default configuration even when the GC proposal is disabled. Wasmtime users using 19.0.0 and after are all affected by this issue. We have released the following Wasmtime versions, all of which have a fix for this bug: * 21.0.2 * 22.0.1 * 23.0.3 * 24.0.1 * 25.0.2. If your application creates and drops Wasmtime types on multiple threads concurrently, there are no known workarounds. Users are encouraged to upgrade to a patched release.

НизкаяCVSS 2.9 · v3.1—Эксплойта нет Есть исправление
Опубликовано
9 окт. 2024 г.
Обновлено
17 июн. 2026 г.
EPSS
0,1 % · 3-й процентиль

Инструменты для отчёта

JSON

Оценка срочности

11

Наблюдать

Пока низкий приоритет.

CVSS
11 / 40 · 2.9 / 10
CISA KEV
0 / 30 · Нет в списке
EPSS
0 / 30 · 0,1 %

Решение CISA SSVC

Эксплуатация
нет
Автоматизируемо
нет
Техническое влияние
частичное

Vulnrichment: входные данные дерева решений CISA.

Оценка CNA и NVD

NVD
—
CNA · GitHub_M
2,9
NVD ещё не выставил свою оценку; показана оценка CNA.

Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.

Узнайте, когда запись изменится

  • Нет в KEV: эксплуатация в реальных атаках не зафиксирована
  • Публичного эксплойта нет
  • Исправление выпущено

Если что-то из этого изменится, сообщим в ежедневной сводке.

Следить за CVE-2024-47813

Когда мы напишем

  • когда запись попадёт в CISA KEV
  • когда появится или станет боевым эксплойт
  • когда запись обновится (в том числе исправленная версия)
  • когда EPSS вырастет на 20 пунктов за неделю

Одна сводка в день по почте (06:00 UTC); с вебхуком попадание в KEV и боевые эксплойты — сразу.

С бесплатным аккаунтом также

У вас WordPress? Проверьте сайт бесплатно в WP Lens

  • Оповещения по стеку: добавьте свои продукты и версии — новые CVE для них придут вам
  • Мониторинг сайта: 1 сайт, письмо сразу при недоступности
  • Добавьте домен: поддомены и риск захвата проверяются каждую неделю (1 домен)
  • 10 проверок в час в инструментах безопасности (без аккаунта — 3 в день), API-ключ и MCP
  • Все сканирования в одной панели: находки, изменения с прошлого сканирования, отчёт по домену или клиенту (PDF, ссылка для просмотра)
Все бесплатные инструменты

Регистрация по почте · Уже есть аккаунт? Войти

Бесплатный аккаунт, без карты. Отписаться можно в любой момент.

У вас WordPress? Проверьте сайт бесплатно в WP Lens

Затронута ли ваша версия? Проверьте

Анализ Noroxi

Что это значит для вашей инфраструктуры?

Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.

Мы используем этот продукт, нужна помощь

Затронутые системы

Затронута ли ваша версия?

Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.

ВендорПродукт
bytecodealliancewasmtime

Затронутые версии

Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.

  • bytecodealliance wasmtime19.0.0
  • bytecodealliance wasmtime19.0.1
  • bytecodealliance wasmtime19.0.2
  • bytecodealliance wasmtime20.0.0
  • bytecodealliance wasmtime20.0.1
  • bytecodealliance wasmtime20.0.2
  • bytecodealliance wasmtime21.0.0
  • bytecodealliance wasmtime21.0.1
  • bytecodealliance wasmtime22.0.0
  • bytecodealliance wasmtime23.0.0
  • bytecodealliance wasmtime23.0.1
  • bytecodealliance wasmtime23.0.2
  • bytecodealliance wasmtime24.0.0
  • bytecodealliance wasmtime25.0.0
  • bytecodealliance wasmtime25.0.1

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.

  • bytecodealliance wasmtime

    • >= 19.0.0, < 21.0.2, >= 22.0.0, < 22.0.1, >= 23.0.0, < 23.0.3, >= 24.0.0, < 24.0.1, >= 25.0.0, < 25.0.2затронута

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
crates.iowasmtimeс 19.0.0 · до 21.0.221.0.2
crates.iowasmtimeс 22.0.0 · до 22.0.122.0.1
crates.iowasmtimeс 23.0.0 · до 23.0.323.0.3
crates.iowasmtimeс 24.0.0 · до 24.0.124.0.1
crates.iowasmtimeс 25.0.0 · до 25.0.225.0.2
Debian:13rust-wasmtimeдо 21.0.2+dfsg-121.0.2+dfsg-1
PyPIwasmtimeдо 21.0.0 включительно—
PyPIwasmtimeдо 21.0.1 включительно—
PyPIwasmtimeдо 22.0.0 включительно—
PyPIwasmtimeдо 23.0.0 включительно—
PyPIwasmtimeдо 19.0.0 включительно—
PyPIwasmtimeдо 23.0.2 включительно—
PyPIwasmtimeдо 24.0.0 включительно—
PyPIwasmtimeдо 25.0.0 включительно—
PyPIwasmtimeдо 25.0.1 включительно—
PyPIwasmtimeдо 23.0.1 включительно—
PyPIwasmtimeдо 19.0.1 включительно—
PyPIwasmtimeдо 19.0.2 включительно—
PyPIwasmtimeдо 20.0.0 включительно—
PyPIwasmtimeдо 20.0.1 включительно—
PyPIwasmtimeдо 20.0.2 включительно—

Тот же продукт

bytecodealliance: все записи

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2022-39394wasmtime_trap_code C API function has out of bounds write vulnerability
    39Наблюдать
  • CVE-2022-24791Use after free in Wasmtime
    39Наблюдать
  • CVE-2026-34987Wasmtime with Winch compiler backend on aarch64 may allow a sandbox-escaping memory access
    36Наблюдать
  • CVE-2026-34971Wasmtime miscompiled guest heap access enables sandbox escape on aarch64 Cranelift
    36Наблюдать
  • CVE-2023-30624Wasmtime has Undefined Behavior in Rust runtime functions
    35Наблюдать
  • CVE-2022-39393Wasmtime vulnerable to data leakage between instances in the pooling allocator
    34Наблюдать

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
crates.io:wasmtime21.0.2Реестр пакетов (OSV)
crates.io:wasmtime22.0.1Реестр пакетов (OSV)
crates.io:wasmtime23.0.3Реестр пакетов (OSV)
crates.io:wasmtime24.0.1Реестр пакетов (OSV)
crates.io:wasmtime25.0.2Реестр пакетов (OSV)
debian:rust-wasmtime21.0.2+dfsg-1 · Debian:13Реестр пакетов (OSV)

Статус эксплойта

Публичный эксплойт неизвестен

Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

Кроме публикации датированных событий нет.

EPSS за 120 дней

Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

В записи CNA нет авторов.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Технические детали

Условия атаки

  • Может быть вызвана пользователем с локальным доступом к системе.
  • Требуются права администратора.
  • Пользователь должен открыть ссылку или посетить страницу.
  • Требуются особые условия, например определённое время или конфигурация.

В случае успеха

Конфиденциальность
нет
Целостность
низкое · данные или конфигурация могут быть изменены
Доступность
низкое · работа сервиса может быть нарушена
Вектор атаки
Локальный
Сложность атаки
Высокая
Требуемые привилегии
Высокие
Взаимодействие с пользователем
Требуется
Область действия
Не изменяется
Влияние на конфиденциальность
Нет
Влияние на целостность
Низкое
Влияние на доступность
Низкое

Вектор CVSS

CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:L

nvd-secondary

Контекст атаки

Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Показать все источники (ещё 1)

Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.

Все записи