- 2026年10月に npm の部品で起きたこと
- 「入れただけ」で鍵が盗まれる理由
- エディタやAIツールの設定ファイルに居座る手口
- 外注先や開発の担当者に聞く5つのこと
結論
アプリやサイトを作るときは、世界中の人が公開している部品(パッケージ)を取り寄せて組み合わせます。2026年10月、その部品の配布元に、入れただけで開発者の鍵やパスワードを盗む不正な版が相次いで出ました。被害に遭うのは、部品を入れた開発者のパソコンや、自動でビルドする仕組みです。自社で開発していなくても、外注先の環境から自社のサーバーやクラウドの鍵が漏れることがあります。外注先に「公開されたばかりの版をすぐ入れない決まりがあるか」を聞いてください。
何が起きたのか
GMO Flatt Security の解析(いずれも速報で、内容が変わる可能性があるとしています)から、主なものをまとめます。
| 部品(日付) | 不正な版 | 安全な版 | 経緯 |
|---|---|---|---|
| @subql/common(10/5) | 5.8.3 | 5.8.2 | 署名の無い変更で公開の手順が書き換えられ、正規の自動公開の仕組みから出された |
| tensorlake(10/8) | 0.5.144 | 0.5.143 | 管理者権限のあるアカウントから、レビューを通さずに直接変更が入った |
どちらも1時間ほどで配布元から取り下げられました。どちらの部品の作り手も、攻撃を受けた側です。
@subql/common では、配布元の記録上は正規の仕組みから公開されたように見えたため、「どこから公開されたか」の記録だけでは不正な版を見分けられなかった、と解析は指摘しています。10月21日には AI の部品 LiteLLM でも不正な版が出ました。こちらは10月の土台のソフトの修正のコラムで触れています。
部品を入れるときの3つの備え
- 公開から日が浅い版を入れない設定
- 版を固定し、確かめてから上げる
- 他人のリポジトリを開く前に
- エディタやAIツールの自動の命令
- 開発のパソコンに本番の鍵を置かない
- 疑わしいときは止めてから取り替える
「入れただけ」で鍵が盗まれる理由
部品には、入れるときに自動で動く命令を書いておけます。GMO Flatt Security の解析によると、tensorlake の不正な版は `npm install` をしただけで動き、クラウドや GitHub の認証情報、SSH の鍵、`.env` ファイル、ブラウザに保存したパスワードなどを盗んで外へ送る作りでした。@subql/common の不正な版は、入れたときだけでなく、プログラムからその部品を読み込んだときにも動くため、自動で動く命令を止める設定だけでは防げないとされています。
tensorlake の不正な版では、さらに、盗んだトークンを見張るプログラムが残り、トークンが無効にされたと検知するとホームフォルダを消す作りだったとされています。解析は、鍵を取り替える前にこのプログラムを止め、先にデータの控えを取るよう求めています。被害が疑われたら、自己判断で動かず、手順の順番まで専門家と確かめます。
エディタやAIツールの設定ファイルに居座る手口
エディタやAIコーディングツールには、フォルダを開いたときや作業を始めたときに、決まった命令を自動で動かす設定があります。便利な機能ですが、解析によると tensorlake の不正な版は `.vscode/tasks.json` と `.claude/settings.json` に命令を書き込み、次に開いたときにも動くようにしていました。
こうした設定ファイルは、リポジトリ(ソースコードの置き場)の中に入れて共有できます。他人のリポジトリを開く前に、中の設定ファイルを読み、エディタが「このフォルダを信頼しますか」と聞いたときに安易に信頼しないことが大切です。解析は、AIツールの名義(`claude@users.noreply.github.com`)に見せかけた、身に覚えのないコミットがないか確かめることも勧めています。
外注先や開発の担当者に聞くこと
例えば、次の5つを聞けば、備えがあるかどうかの見当がつきます。
確認リスト
- 公開から日が浅い版を入れない設定をしているか(npm の min-release-age、pnpm の minimumReleaseAge など)
- インストール時に部品の命令を自動で動かさない設定(npm の ignore-scripts など)を、ほかの対策と組み合わせて使っているか
- 10月に名前が出た部品の不正な版を入れていないか、確かめたか
- 他人のリポジトリを開く前に、エディタやAIツールの設定ファイルを確かめる決まりがあるか
- 自社のクラウドやサーバーの鍵を、開発のパソコンにどこまで置いているか
今日、まず確認すること
外注先か開発の担当者に、「公開されたばかりの部品の版をすぐ入れない設定はしていますか」と1通送ってください。