OVHcloud公式CLIツールの過去リリースが改ざん被害、シークレット窃取マルウェアが一時配布される
要点
-
クラウド事業者OVHcloudの公式CLIツールにおいて、過去に公開された5つのリリースの配布アーカイブが一時的に不正なバイナリへ差し替えられた。
-
コントリビューターのGitHubアカウント侵害が原因で、端末内のシークレットを窃取するマルウェアが約94分間にわたり公開状態にあった。
-
ハッシュ検証を行わないスクリプトや直接ダウンロードが影響を受けた一方、HomebrewやDockerなどの利用環境は被害を免れた。
-
OVHcloudは不正ファイルを削除してクリーンな「v0.16.0」を公開し、影響を受けたユーザーに端末内の全シークレットの変更を呼びかけている。
-
欧州のクラウド大手OVHcloudが提供する公式コマンドラインツール「OVHcloud CLI」において、GitHub上で公開されていた過去のリリースの配布アーカイブが改ざんされていたことが明らかになった。同社によると、正規コントリビューター(開発協力者)のアカウントを乗っ取った攻撃者により、端末内のシークレット情報を盗み出すマルウェアが仕込まれたバイナリが約94分間にわたって配布されていたという。同社は直ちに該当ファイルを削除し、改ざん防止措置を施した新バージョンを公開して注意を呼びかけている。
アカウント侵害により94分間にわたり不正バイナリが公開
今回の改ざんが発生したのは、2026年10月19日の12時47分から14時21分(UTC)にかけての約94分間である。OVHcloud CLIのGitHubリポジトリにおいて、過去に公開されていた5つのリリース(v0.11.0からv0.15.0)のダウンロードファイルが不正に差し替えられた。
OVHcloudの説明によれば、攻撃者はリポジトリのコントリビューターアカウントを侵害し、その正規権限を悪用して既存のリリースページに不正なバイナリを直接アップロードしたという。同社のソースコード本体やリリースタグ、ビルドパイプライン(ソフトウェアを自動で構築・検査する仕組み)自体は侵害されておらず、攻撃者は後続のコミットから通常の「go build」で独自にビルドしたファイルを配置していた。
この不正バイナリは、実行した端末のストレージ内に保存されているシークレット(APIキーや認証情報などの機密データ)を窃取する目的で設計されていた。対象となった5つのバージョンは2026年4月14日から9月16日にかけて公開されたものだったが、v0.10.0以前のリリースは改ざんの影響を受けていないと説明されている。
影響が及んだプラットフォームと配布経路
差し替えの対象となったのは、macOS(x86_64、arm64)、Linux(x86_64、arm64)、Windows(x86_64)向けの配布アーカイブと、ハッシュ値一覧が記載された「checksums.txt」の計6ファイルである。攻撃者はハッシュリストも同時に書き換えていたため、公開されているハッシュとの照合だけでは改ざんを検知できない状態となっていた。なお、Linux i386、Windows i386、Windows arm64、WebAssembly向けビルドは改ざんされずに残されていた。
被害を受けた可能性があるのは、前述の94分間にハッシュ検証を行わない経路で対象OS向けにインストールや更新を行った環境である。具体的には、公式インストール用シェルスクリプトの実行、GitHubのReleasesページからの直接ダウンロード、ハッシュ値を固定せずにダウンロードURLを指定していたCI(継続的インテグレーション)ジョブなどが該当する。また、v0.12.0からv0.14.0を導入済みで、CLI内蔵の自動更新コマンドを実行したmacOSやLinux環境も影響を受けた。
一方で、パッケージ管理システム「Homebrew」を通じて導入していたユーザーは影響を免れた。Homebrewでは定義ファイル内で各アーカイブの「SHA-256(改ざん検知用のハッシュ値)」が固定されており、ハッシュが合致しないダウンロードは自動的に拒否されるためである。そのほか、Go言語の「go install」コマンドやソースコードからのビルド、公式Dockerイメージの利用、あるいは該当時間帯以前にインストールして更新を行わなかった環境も被害を受けていない。
ユーザーによる早期発見と不正バイナリの特徴
この改ざんは、異常に気づいた顧客がGitHubのIssue(課題報告スレッド)に投稿したことで発覚した。この顧客は、ファイルを実行せずにビルド情報を確認できるコマンド「go version -m」を差し替えられたv0.15.0のLinux arm64版バイナリに対して実行し、正規版との差異を特定した。
不正なバイナリには主に3つの特徴が見られた。1つ目は、モジュール情報のバージョン表示が正規のタグ名ではなく、「v0.15.1-0.20261013083505-5ead8ef9b43d+dirty」という10月13日の未タグコミットに基づく疑似バージョンになっていた点である。2つ目は、正規のv0.15.0が指すコミット「760fd72」ではなく「5ead8ef」が記録されていた点。そして3つ目は、正規のリリース手順では記録されないリンカフラグ「-ldflags="-s -w"」が含まれていた点である。
なお、ビルド情報に「+dirty」表記やVCS(バージョン管理システム)情報が含まれること自体を悪性の判断基準とする情報も出回ったが、正規のv0.16.0でも同様の表示が出るため、単体で不正と断定することはできないとされている。公開されたハッシュ値によると、v0.15.0 Linux arm64アーカイブのSHA-256は正規版が「5c2beb56...」であるのに対し、改ざん版は「3833daff...」となっていた。
修正版の公開と機密情報の再設定呼びかけ
事態の判明後、OVHcloudは改ざんされたアーカイブを速やかに削除した。そして同日夜、改ざん防止の措置を施したクリーンな最新版「v0.16.0」を公開した。v0.16.0は、ファイルの改変が不可能な「イミュータブル(変更不可)リリース」としてGitHub上に登録されている。
あわせてOVHcloudの創業者であるオクターブ・クラバ(Octave Klaba)氏は同日夜、自身のX(旧Twitter)アカウントにて、影響を受けた可能性のあるユーザーに対して端末のディスク上に保存されているシークレットをすべて変更するよう呼びかけた。
同ツールの公式ドキュメントによると、OVHcloud CLIはAPI認証情報を「~/.ovh.conf」に保存し、環境変数からも読み取る仕様となっている。不正なバイナリを実行してしまった場合、これらの認証情報を含む端末内の機密データが外部に窃取された恐れがあるため、該当環境におけるシークレットの無効化と再発行が求められている。