JVNDB-2026-004418 | |
Stellarのrs-soroban-sdkにおける常に不適切な制御フローの実装に関する脆弱性 | |
| 概要 | |
soroban-sdkはSorobanコントラクト用のRust SDKです。バージョン22.0.10、23.5.2、および25.1.1より前のバージョンでは、`#[contractimpl]`マクロに関数呼び出しの接続方法にバグがありました。`#[contractimpl]`はトレイトバージョンを処理している場合でも`MyContract::value()`スタイルの呼び出しを生成します。これは、同名の固有関数が定義されている場合、トレイト関数ではなく固有関数が呼び出されることを意味します。このため、2つの条件が同時に満たされた場合、Wasmエクスポートされたエントリポイントが誤った関数を静かに呼び出してしまいます。条件とは、第一に`impl Trait for MyContract`ブロックが1つ以上の関数を持ち`#[contractimpl]`が適用されていること、第二に`impl MyContract`ブロックが1つ以上の同名関数を持ち`#[contractimpl]`が適用されていないことです。トレイトバージョンに権限確認などの重要なセキュリティチェックが含まれていて固有バージョンに含まれていない場合、そのチェックがバイパスされてしまいます。契約のパブリックインターフェースを通じてやりとりする者は誤った関数を呼び出すことになります。この問題は`soroban-sdk-macros`のバージョン22.0.10、23.5.2、25.1.1で修正されました。修正内容は、トレイト実装を処理する際に生成される呼び出しを`Type::func()`から`Type as Trait::func()`に変更し、固有関数が同名で存在してもRustがトレイト関連関数を正しく解決するようにしたものです。ユーザーは`soroban-sdk-macros`の22.0.10、23.5.2、または25.1.1にアップグレードして契約を再コンパイルする必要があります。すぐにアップグレードできない場合は、契約開発者がトレイト実装の関数名と同名の固有関連関数を契約型に持たないようにして問題を回避できます。競合する固有関数をリネームまたは削除することで曖昧さが解消され、マクロ生成コードが正しくトレイト関数を解決するようになります。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Stellar | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
GitHub | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/02/19 |
| 登録日 | 2026/02/24 |
| 最終更新日 | 2026/02/24 |



