CVE-2026-24889 in rs-soroban-sdk
要約
〜によって VulDB • 2026年05月12日
soroban-sdkは、Sorobanコントラクト用のRust SDKです。soroban-sdkのバージョン25.0.1、23.5.1、および25.0.2(いずれも含まれる)において、`Bytes::slice`、`Vec::slice`、および`Prng::gen_range`(`u64`用)メソッドで算術オーバーフローをトリガーすることができます。ユーザー制御または計算された範囲の境界を`Bytes::slice`、`Vec::slice`、または`Prng::gen_range`に渡すコントラクトは、誤ったデータ範囲で静かに動作したり、意図しない範囲から乱数を生成したりする可能性があり、その結果、コントラクトの状態が破損する可能性があります。`soroban-sdk`の使用およびSorobanコントラクトの構築におけるベストプラクティスは、常に`overflow-checks = true`を有効にすることです。Sorobanコントラクトのボイラープレートを作成する`stellar contract init`ツール、ならびにすべての例とドキュメントは、これらの算術演算が静かにラップするのではなく失敗するように、`release`プロファイルで`overflow-checks = true`を設定して使用することを推奨しています。コントラクトは、明示的または暗黙的に`overflow-checks = false`を使用している場合にのみ影響を受けます。ツールによって推奨されるベストプラクティスが`overflow-checks`を有効にすることであるため、大多数のコントラクトは影響を受けないと予想されます。`25.0.1`、`23.5.1`、および`25.0.2`で利用可能な修正は、裸の算術演算を`checked_add` / `checked_sub`に置き換え、`overflow-checks`プロファイルの設定に関係なくオーバーフローをトラップすることを保証します。ワークアラウンドとして、コントラクトワークスペースは、GitHubセキュリティアドバイザリで利用可能なプロファイルを使用して、算術演算でオーバーフローチェックを有効にように構成できます。これはSorobanコントラクトを開発する際のベストプラクティスであり、`stellar contract init`を使用して生成されたコントラクトボイラープレートを使用している場合のデフォルト設定です。あるいは、コントラクトは、変換がオーバーフローしないことを保証するために、`slice`や`gen_range`に渡す前に範囲の境界を検証することができます。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.