
Rustの暗号計算クレート crypto-bigint にて、タイミング攻撃(サイドチャネル攻撃)に繋がる脆弱性(RUSTSEC-2026-0387)が報告されています。 単に「アップデートすれば解決」という話にとどまらず、Alloyをはじめとする主要なWeb3/EVMスタックを採用しているプロダクトに直接影響が出ているため、状況の整理と注意喚起を兼ねて共有します。 1. 脆弱性の概要 対象クレート: crypto-bigint(巨大整数の固定サイズ演算ライブラリ) 問題点: 減算やモンゴメリー乗算などの内部処理において、コンパイラ最適化等の影響で条件分岐が発生し、処理時間に入力データ依存の差が生じる。 リスク: 攻撃者がミリ/マイクロ秒単位の実行時間を精密計測することで、秘密鍵などの機密情報を推測・復元されるおそれ(タイミング攻撃)。 2. なぜ今「すぐにアップグレードできない」のか? crypto-bigint 自体には修正版(v0.7.6)がリリースされていますが、上流ライブラリの依存関係で足止めを喰らうケースが発生しています。 EVM/Ethereum周りで広く使われている alloy が、暗号クレートである k256 v0.13 に依存。 しかし、現状 k256 v0.13 側が crypto-bigint v0.7.6 への追従に対応していない(またはリリース待ち)。 そのため、プロジェクト側で cargo update を叩くだけでは解消できず、依存関係のロックによって古いバージョンが残り続ける構造になっています。 3. 今後の対応・チェック手順 影響の可視化:まずは cargo tree -i crypto-bigint や cargo audit を実行し、自分のプロジェクトでどの経路(alloy -> k256 等)から依存が入っているかを確認。 上流の追従待ちと監視:k256 および alloy 側でのバンプPR(パッチ適用リリース)を注視。 ワークアラウンドの検討:どうしても先行して対応が必要な場合、Cargo.toml の [patch.crates-io] を使って依存関係を強制的に差し替える等の検証を行う。 Rust/Web3エコシステム全体で修正が波及するまでに多少のタイムラグが生じる見込みです。該当スタックを運用されている方は、依存ツリーの挙動を追っておくことを強くおすすめします。 ▼RustSec アドバイザリー https://t.co/FJSYIOHwtH #Rust #RustLang #Web3 #Alloy #Ethereum #Security #暗号技術
