LaravelのサードパーティローカライゼーションパッケージシリーズであるLaravel Langが供給チェーン攻撃の標的となった。攻撃者はGitHubのバージョンタグを悪用し、Composer経由でインストールした開発者のシステムからAWSキーやGitHubトークンを含む幅広いクレデンシャルを窃取するマルウェアを仕掛けた。StepSecurity・Aikido Security・Socketの3社が2026年5月23日に警告を発している。

攻撃の手口:ソースコードを変えず、タグだけを書き換える

今回の攻撃で特筆すべきは、プロジェクトのソースコードそのものは改ざんされていないという点だ。代わりに攻撃者が悪用したのは、GitHubの「タグ」がフォーク先のコミットを参照できるという機能だ。

攻撃者はlaravel-lang組織のorg全体プッシュ権限を持つ侵害済み認証情報を使い、以下の4パッケージの全既存タグを悪意あるコミットへ書き換えた:

  • laravel-lang/lang(502タグ)
  • laravel-lang/http-statuses
  • laravel-lang/attributes
  • laravel-lang/actions

書き換えは2026年5月23日 22:32 UTCに開始し、翌00:00 UTCに完了。StepSecurityによれば4リポジトリ全てで同一の偽著者IDと同一の改ざんファイルが確認されており、単一の攻撃者による組織的な攻撃とみられる。Aikidoは233バージョン、Socketは約700バージョンへの影響を報告している。

何が盗まれるのか:クレデンシャルの「全方位収集」

悪意あるリリースは src/helpers.php という新ファイルをComposerのautoload設定に組み込む形で動作する。このファイルはドロッパーとして機能し、攻撃者のC2サーバー(flipboxstudio[.]info)から第2ペイロードをダウンロードする。

ダウンロードされるPHPペイロードはLinux・macOS・Windows対応のクロスプラットフォーム製クレデンシャルスティーラーで、盗取対象は驚くほど広い:

  • AWSキー、GitHubトークン、Slackトークン、Stripeシークレット
  • Kubernetesシークレット、Vault トークン
  • CI/CDシークレット、SSHキー
  • ブラウザ保存パスワード・Cookie(Chrome・Brave・Edge)
  • 暗号通貨ウォレット、パスワードマネージャー
  • VPN設定、ローカル .env ファイル

Windowsでは追加で DebugElevator という実行ファイルが %TEMP% に展開され、ChromeのApp-Bound Encryptionキーを解読してブラウザ保存認証情報を窃取する。実行ファイルのPDBパスには「claude」という文字列も含まれており、マルウェア開発にAIが活用された可能性が指摘されている。

実務への影響

今すぐ確認すべきこと

1. composer.lock を確認する laravel-lang/langlaravel-lang/http-statuseslaravel-lang/attributeslaravel-lang/actions のいずれかが存在する場合は直ちに調査が必要だ。

2. 影響期間を把握する 攻撃はUTC 2026年5月23日 22:32以降に展開された。それ以前のインストールでも composer update で最新タグを取得していた場合は影響を受けた可能性がある。

3. クレデンシャルをローテーションする 上記パッケージを利用していた環境では、AWSキー・GitHubトークン・DBパスワード等を即座にローテーションすることを強く推奨する。.env ファイルの内容も漏洩前提で扱うべきだ。

4. CI/CDシークレットの見直し GitHub Actionsに保存されているシークレット類は、今回の攻撃で主要標的の一つになっている。OIDCによる一時的クレデンシャル発行(Just-In-Timeアクセス)を導入することで、仮に窃取されても被害を最小化できる。

Composerのセキュリティ強化

Composerは composer.lock のハッシュ値で整合性を検証するが、タグが書き換えられると新しいコミットに対する新しいハッシュが生成されるため、従来の整合性検証では検出できない。今後はSHA pinningやプライベートミラーの活用、GitHub の Tag Protection Rules の設定も検討に値する。

筆者の見解

供給チェーン攻撃の中でも、今回のケースは「ソースコードには触れず、タグというメタデータだけを書き換える」という点で既存の防衛策をすり抜けやすい。静的解析やSCAツールが監視しているのはあくまでソースコードの変化であり、タグ先のコミットが差し替えられたという事実は検出できない。

より根本的な問題として、攻撃者が利用したのは「org全体のプッシュ権限を持つ常時有効な認証情報」だ。これが常時付与された権限だったからこそ、4リポジトリを一気に、しかも深夜の約1時間半で書き換えることができた。Just-In-Timeアクセスときめ細かなスコープ制御が標準になっていれば、ここまでの被害拡大は防げたはずだ。Non-Human Identity(NHI)管理の重要性が改めて問われる事例といえる。

「今動いているから安全」は通用しない、という教訓もここに凝縮されている。既存バージョンのタグが突然書き換えられると、過去に問題なくインストールされた依存関係が一夜にして危険なものに変わる。パッケージの署名検証やタグの不変性保証が業界標準として定着することを期待したい。


出典: この記事は Laravel Lang packages hijacked to deploy credential-stealing malware の内容をもとに、筆者の見解を加えて独自に執筆したものです。