公開済みリリースの配布物を差し替えさせない(ovhcloud-cli 事例と Immutable Releases)
ソースコードもビルド工程も無傷のまま、GitHub の公開済みリリースのバイナリーだけが情報窃取型に差し替えられた。リポジトリーの「公開済みリリースの変更を禁止する」設定を有効にし、利用者はハッシュや署名で照合する。
何が起きたか
- OVHcloud の公式 CLI
ovhcloud-cliで、v0.11.0〜v0.15.0 の配布ファイルが日本時間 10 月 19 日 21:47〜23:21 の間だけ差し替えられた。 - 起点は開発者の私物 Mac に入った不正な拡張機能
color-picker-universal2.8.91。そこから盗まれた認証情報で、リリースの資産が置き換えられた。 - 公開済みリリースの変更を禁止する設定は無効だった。事後に組織内の全リポジトリーで有効化された。
- 差し替え版は、クラウドの認証情報、SSH 鍵、Docker・Kubernetes の設定、VS Code・Cursor のローカルデータ、AI コーディング支援ツールの履歴・設定を盗む。
配布する側の対策
- Immutable Releases を有効にする。 GitHub の組織またはリポジトリーの設定で、公開後のリリースの資産とタグを変更・削除できないようにする。漏れを防ぐため、組織単位で全リポジトリーに適用する。
- ビルド来歴(provenance)を付ける。
actions/attest-build-provenanceなどで成果物に署名付きの来歴を付け、CI 以外の場所で作られたファイルを見分けられるようにする。 - リリース権限を持つ認証情報を個人端末に置かない。 リリースは CI から短命のトークンで行い、人の端末の長期トークンでは資産をアップロードできないようにする。
- 私物端末を業務の認証に使わせない。 拡張機能の導入を管理できない端末に、組織の GitHub 権限を持たせない。
利用する側の対策
- ダウンロードしたバイナリーは、公式が出すハッシュ値や
gh attestation verifyで照合してから実行する。 - 今回の該当期間に取得して実行した場合は、端末内の対象となる秘密情報を漏れたものとして失効・変更し、不正なバイナリーを消して v0.16.0 以降へ更新する。判定は実行せずハッシュ値で行う。
注意点
- Immutable Releases は「公開後の改ざん」を防ぐもので、ビルド前のソースやワークフローの改ざんは防げない。来歴の検証と組み合わせる。
- 関連: 使い捨てブランチへの push で CI のシークレットを抜く手口に備える(LiteLLM 侵害の教訓)
出典
- @MalwareBibleJP · 2026-10-24
- GitHub Security Advisory: github.com