5日前、私たちは開発者を狙った初の悪意あるMCPサーバーに関する分析結果を公開しました。本日、私たちは2件目のケースを報告します。パッケージ名は@lanyer640/mcp-runcommand-serverです。
私たちのリスクエンジンがマーケットプレイスをスキャンしている際に、この悪意あるパッケージを検出しました。
このパッケージをインストールすると、AIアシスタントにシステム上でコマンドを実行する権限を与えることができます。しかし、AIにその能力を付与すると同時に、IPアドレス45.115.38.27にいる脅威アクターにも、まったく同じアクセス権を持つシェルを渡してしまうことになります。あなたが求めていたのはAI用のツールでしたが、実際に手にしたのは攻撃者用のバックドアだったのです。
正常に動作するツールに隠されたバックドア
@lanyer640/mcp-runcommand-serverパッケージは、完全に機能するModel Context Protocolサーバーです。2025年9月6日に初めて公開された時点では、オリジナル版は完全に正規のものでした。攻撃者は約1カ月待ってから、2025年9月30日の悪意ある更新でこのパッケージを武器化しています。これは、パッケージの普及と信頼構築の時間を確保するためだったと考えられます。この期間中に、パッケージは数百件のインストールを積み重ねました。
これは単なる見せかけのソフトウェアではありません。このパッケージは実際に動作します。MCP経由でシステムコマンドを実行する正規のrun_commandツールを提供し、適切な出力を返します。パッケージをテストする開発者には、期待通りに動作しているように見えるため、その裏に潜むバックドアを通常の検査で発見することはほぼ不可能です。

二重のリバースシェル攻撃
このパッケージは、あなたが指示したコマンドを実行すると同時に、別の誰かのためにもコマンドを実行しています。攻撃者はアクセスを最大化するため、2つの独立したリバースシェルを埋め込んでいました。
インストール時のバックドア

これはpreinstallフックを通じて、npm installまたはnpxの実行時に自動的に起動し、攻撃者のサーバー(45.115.38.27:2333)へ即座にリバースシェルを確立します。評価目的でパッケージをインストールしただけでも、その時点ですでに侵害されてしまいます。
実行時のバックドア

実際にMCPサーバーを実行すると、2つ目のバックドアが起動します。これは隠された対話型シェルを生成し、同じ攻撃者制御下のサーバーへ持続的なTCP接続を確立します。この接続は、MCPサーバーが稼働している限り開いたままとなり、攻撃者に継続的なリモートアクセスを提供し続けます。
なぜ2つのバックドアが必要なのか
この冗長性により、最大限のカバー範囲が確保されています。
- インストールしただけで一度も実行しない場合は? preinstallスクリプトが捕捉します。
- ツールを実行した場合は? 両方のバックドアが起動し、持続的なアクセスを確立します。
- セキュリティ対策でpreinstallスクリプトがブロックされた場合は? 実行時バックドアが依然として機能します。
この多層的なアプローチにより、パッケージとやり取りする際に侵害を回避することはほぼ不可能になっています。
拡大するパターン
これはわずか1週間で発見された2件目の悪意あるMCPサーバーであり、憂慮すべき傾向を浮き彫りにしています。MCPエコシステムはまだ発展途上にありながら急速に成長を遂げており、今やサプライチェーン攻撃者の注目を明確に集めていることが分かります。
両方の攻撃には、共通する特徴が見られます。
- 正規の機能性 – ツールは説明通りに動作する
- 最近の更新 – 正当性を確立した後に悪意あるコードが注入される
- 開発者を標的 – MCPエコシステムに対するサプライチェーン攻撃
- 隠されたバックドア – 難読化または偽装された悪意あるコード
正常に機能するツールにバックドアを組み込むというこの手法は、単純でありながら効果的です。実際に動作するものを作り込み、開発者が目を向けない場所に悪意あるコードを隠す、という単純な戦術なのです。
侵害指標(IOC)
パッケージ: @lanyer640/mcp-runcommand-server
悪意あるバージョン: 1.0.6以降
IPアドレス: 45.115.38.27
翻訳元: https://www.koi.ai/blog/mcp-malware-wave-continues-a-remote-shell-in-backdoor