TanStack Queryの型安全なフックを生成するnpmパッケージ「@7nohe/openapi-react-query-codegen」の複数のリリースがサプライチェーンワームに侵害され、開発者およびCIシステムが認証情報窃取、リポジトリのバックドア化、パッケージ汚染の危険にさらされています。
Aikido Securityによると、わずか20分間で10個の悪意あるバージョンが公開されたことが確認されました。同パッケージは週間ダウンロード数が15万件を超えており、JavaScript依存関係をインストールする開発者にとって深刻な影響を及ぼす事案となっています。
このペイロードは「Trinitite: Sponsored by Preview 2 Effects」と自己を名乗っており、研究者らはその手口がTeamPCPに関連する活動と類似していると指摘していますが、帰属の特定には至っていません。
今回の侵害はnpmパッケージ自体と、そのGitHubリポジトリの両方に及んだとみられています。攻撃者はGitHub Actionsのワークフローの脆弱性を悪用したと考えられており、そのためリリースには有効なプロベナンス証明(provenance attestation)が付与されたままとなっていました。
この点は重要です。プロベナンス証明は、リリースが正規のワークフローから生成されたことを保証するものですが、そのワークフロー自体が改ざん・侵害されている場合には安全性を担保できません。
侵害を受けたバージョンの大半は、Node.jsのネイティブアドオンのビルド設定ファイルであるbinding.gypを悪用していました。インストール時、node-gypはPythonを使ってその条件を評価します。
この悪意あるファイルは、Pythonのクラス階層を悪用してcatch_warningsを探し出し、組み込み関数へのアクセスを取り戻したうえでosモジュールをインポートし、難読化されたNode.jsペイロードを実行します。
実際に正規のネイティブビルドが行われることはなく、この設定ファイルはインストール時にコードを実行させるための仕組みとしてのみ存在しています。一部のプレリリース版では明示的なpreinstallスクリプトが使われており、後のバージョンでは両方の手法が組み合わされていました。
主要なペイロードである3FWCvzduYZg.jsは、サイズ5.4MBの単一行ファイルで、XOR・AES-GCM・JavaScript難読化の3層で保護されています。インストール時にはBunランタイムを密かにダウンロードしたうえで、認証情報を窃取する機能を実行します。
また、ロシア語ロケール設定、セキュリティツールのディレクトリ、既知のスキャナー用おとり認証情報、研究用アカウント、StepSecurityのharden-runnerの有無をチェックし、分析環境と判断された場合には処理を終了する仕組みも備えています。
窃取される情報には、GitHub、npm、PyPI、RubyGemsのトークンのほか、AWS、Azure、GCP、HashiCorp Vaultの認証情報、Kubernetesのサービスアカウントおよびkubeconfigファイル、SSHキー、Docker設定、環境変数ファイル、Git認証情報、シェル履歴、暗号資産ウォレット、メッセージングアプリのセッションデータ、VPN設定、Claude AI関連ファイルが含まれます。
Aikido Securityによると、このマルウェアはクラウドのメタデータサービスに問い合わせを行い、窃取前にクラウド認証情報の有効性を検証できる機能も備えているとのことです。
収集された情報は暗号化されたうえで、攻撃者が作成したGitHubリポジトリにコミットされます。これらのリポジトリは通常、東方Projectのキャラクター名にちなんで命名され、Trinititeという説明が付けられています。
このワームは、窃取した公開用トークンを使って、npm、PyPI、RubyGems上のパッケージに悪意あるファイルを注入することも可能です。
GitHubのトークンを入手すれば、アクセス可能なリポジトリに対して、バックドア化されたVS Codeタスク、Claude Codeフック、偽のCodeQLワークフロー、他の開発者ツールを狙った設定ファイルを仕込み、汚染することもできます。
組織は、影響を受けるバージョンがインストールされていないかを確認し、npm installを実行したシステム上で漏えいした可能性のある開発者、CI、クラウド、レジストリの各認証情報を失効・再発行するとともに、リポジトリ内に不正なコミットや設定ファイルがないか点検し、GitHub Actionsのワークフローを見直す必要があります。
また、依存関係のバージョンを固定し、公開用トークンには最小権限の原則を適用したうえで、プロベナンス証明はあくまで保証の一要素にすぎず、上流のビルドパイプラインが侵害されていないことを証明するものではないと認識しておくべきです。
翻訳元: https://cyberpress.org/supply-chain-worm-hits-popular-tanstack-query-code/