JVNDB-2026-005167 | |
Bytecode Allianceのwasmtimeにおける例外的な状態の処理に関する脆弱性 | |
| 概要 | |
WasmtimeはWebAssemblyのランタイムです。Wasmtime 39.0.0以降、`component-model-async`機能がデフォルトとなり、新たに`[Typed]Func::call_async`の実装が導入され、非同期型のゲストエクスポート関数を呼び出せるようになりました。しかし、その実装には特定の状況下でパニックを引き起こすバグが存在しました。まず、ホストの埋め込みでコンポーネントがエクスポートする関数に対して`[Typed]Func::call_async`を呼び出し、返された`Future`を一度ポーリングします。次に、コンポーネント関数が非同期ランタイム(例えばTokio)に制御を渡します。これは`LinkerInstance::func_wrap_async`で登録されたホスト関数の呼び出しで処理が一時停止した場合や、エポック割り込みによる場合があります。三番目に、ホストの埋め込みが一度ポーリングした後に`Future`を破棄します。これにより、呼び出しが完了せずコンポーネントインスタンスは再入不可な状態になります。四番目に、ホストの埋め込みが再び同じコンポーネントインスタンスに対して`[Typed]Func::call_async`を呼び出し、返された`Future`をポーリングします。この時点でコンポーネントインスタンスに入れないため呼び出しはトラップしますが、呼び出しのためのタスクとスレッドの割り当ては行われます。五番目に、ホストの埋め込みがトラップを無視して`Future`を破棄します。これにより、スレッドが終了していないためにタスクを破棄しようとしてランタイムがパニックを起こします。影響を受けるWasmtimeのバージョンでホストの埋め込みがゲストエクスポートに対し`wasmtime::component::[Typed]Func::call_async`を呼び出し、その`Future`を解決を待たずに破棄し、同じコンポーネントインスタンスで再度これを行うとWasmtimeはパニックを起こします。`component-model-async`のコンパイル時機能を無効にしている埋め込みは影響を受けません。Wasmtime 40.0.4および41.0.4でこの問題は修正されており、バージョン42.0.0以降は影響を受けません。もし埋め込みで実際に`component-model-async`機能を使用していなければ、Cargoの`component-model-async`機能を無効化することでこの問題を回避可能です。また、この問題は全ての`call_async`の`Future`を完了まで待つか、未解決の`call_async`の`Future`を破棄した後に同じ`Store`を再利用しなければ回避できます。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.5 (重要) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Bytecode Alliance | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
GitHub | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
|
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/02/24 |
| 登録日 | 2026/02/27 |
| 最終更新日 | 2026/02/27 |



