[緊急警報] @nx/dockerにおける深刻なOSコマンドインジェクションの脆弱性 (GHSA-6vc5-vf29-ffr2) について
はじめに:モノレポ開発と@nx/dockerの重要性
Nxは、複数のプロジェクト(フロントエンド、バックエンド、ライブラリなど)を一つのリポジトリで管理する「モノレポ」において、開発効率を大幅に向上させる強力なツールです。特に、`@nx/docker`はDockerイメージのビルド、タグ付け、プッシュといったリリースプロセスを自動化し、CI/CDパイプラインを簡素化するために多くのプロジェクトで利用されています。
しかし、この便利な`@nx/docker`のリリースパイプラインに、攻撃者が任意のOSコマンドを実行できてしまう非常に深刻な脆弱性が発見されました。日本のフロントエンドエンジニアの方々も、モノレポ環境やDockerを利用している場合は、この脆弱性の影響を受ける可能性があります。
脆弱性の概要:なぜOSコマンドが実行されてしまうのか?
この脆弱性(GHSA-6vc5-vf29-ffr2 / CVE-2026-104859)は、`@nx/docker`のリリースパイプラインが`docker`コマンドを実行する際に、Nxの設定から取得する`release.docker.repositoryName`や`registryUrl`といった文字列を、シェルコマンドの一部として直接連結してしまうことに起因します。
具体的には、`nx release version`や`nx release publish`コマンドが実行される際、これらの設定値が悪意のあるシェル構文(例: `; rm -rf /`)を含んでいた場合、`docker`コマンドの引数としてではなく、あたかも独立したOSコマンドであるかのように `/bin/sh -c` を介して実行されてしまいます。
深刻度と潜在的な影響
この脆弱性の深刻度は「High」と評価されています。その理由は以下の通りです。
影響を受けるバージョンとパッチ済みバージョン
`@nx/docker`を利用しているすべてのプロジェクトが対象となります。特に以下のバージョンが影響を受けます。
上記パッチ済みバージョンより前のすべての`@nx/docker`リリースが影響を受けます。
推奨される対策:今すぐアップグレードを!
この脆弱性に対処するためには、速やかに`@nx/docker`をパッチ適用済みのバージョンにアップグレードすることが不可欠です。
アップグレードは以下のコマンドで簡単に行えます(例として23.1.1へのアップグレード)。
```bash nx migrate 23.1.1 ```
この修正はドロップインで適用可能であり、追加の設定変更は不要です。
<strong>重要:</strong> もし信頼できない設定で`nx release version`を実行してしまった心当たりがある場合、次の`nx release publish`を実行する前に、生成されたDockerバージョンファイルを削除することをお勧めします。これは、構成された参照がディスクから読み戻されるためです。
まとめと今後の注意点
`@nx/docker`を利用してモノレポのDockerリリースを自動化している日本のフロントエンドエンジニアの皆さんは、この深刻なOSコマンドインジェクションの脆弱性からプロジェクトを守るため、**今すぐパッチ適用済みのバージョンへのアップグレードを実施してください**。
今回の件は、CI/CDパイプラインや自動化されたリリースプロセスにおいても、供給元の信頼性や設定値のサニタイズがいかに重要であるかを再認識させるものです。常に使用しているライブラリやツールを最新の状態に保ち、セキュリティ情報を定期的にチェックする習慣をつけましょう。
この脆弱性を報告してくださったArkadiusz Marta (RE:SOURCE) 氏に感謝いたします。