コンテンツへスキップ
プレビューモード — 未承認の記事を含みます。外部共有はお控えください。 本番で確認 →
The Kagari
Developer

Movement、Aptos Core VMのEnumシリアライゼーションバグを修正

2026年9月3日 · 1 分で読める

Movementは、Aptos Core内のMove VM値コーデックの非対称性を解決する重要なバグ修正をマージしました。この問題により、シリアライゼーション時に範囲外のvariantタグの受け入れが許可されていましたが、デシリアライゼーション時には拒否されるため、危険なミスマッチが生じていました。

問題点

RuntimeVariants値はu16 variant タグを持ちます。値をそのタグを説明していないレイアウトに対してシリアライズすると(例えば、enum アップグレードがvariantを導入する前にキャッシュされたレイアウト)、結果のバイトはデシリアライゼーション中に拒否されます。この非対称性は、状態をウェッジさせたり(書き込み可能だが読み取り不可能なリソース)、ブロックレベルのエラーを引き起こす可能性があります。

具体的なギャップはゼロフィールド範囲外タグでした。非空のペイロードを持つタグは既存のフィールドカウントチェックで既にキャッチされていましたが、ゼロフィールドタグはスルーされて、有効なvariantとして自動的にシリアライズされていました。

修正内容

seanyoungによるPR #411は、シリアライゼーション時に範囲外variantタグを拒否するように更新し、コーデックの両側が一致することを確認します。テストには、ゼロフィールド範囲外タグ(3、4、100、u16::MAX)がシリアライゼーションに失敗し、正規のunitvariantは引き続きラウンドトリップすることを検証するユニットテストが含まれます。エンドツーエンドのテストでは、修正がenumアップグレードとvariantミューテーションを正しく処理することを確認します。

この修正は、Movement ネットワークのコアVMの復元力を強化し、微妙だが潜在的に壊滅的なシリアライゼーション脆弱性を排除します。

ソース github.com
シェア
The Kagari

Kagariは次世代ブロックチェーンに特化した多言語メディアプラットフォームです。公式ニュース、開発者リソース、ハッカソン情報を整理し、ビルダーとユーザーがエコシステムの動向をより簡単に追えるインフォメーションレイヤーを目指しています。

© 2026 The Kagari. All rights reserved.