開発ツールmiseに脆弱性 CVE-2026-33646ほか、入るだけでコマンド実行
世界中の開発者が使う環境管理ツールmiseに深刻な脆弱性が2件見つかりました。悪意あるプロジェクトのフォルダに入る、またはコマンドをタブ補完するだけで、攻撃者のコマンドがパソコン上で実行され、鍵や認証情報を奪われる恐れがあります。CVE-2026-33646ほか、修正版2026.6.4へ即更新を。
目次
世界中の開発者が使う環境管理ツールmiseに深刻な脆弱性が2件見つかりました。悪意あるプロジェクトのフォルダに入る、またはコマンドをタブ補完するだけで、攻撃者のコマンドがパソコン上で実行され、鍵や認証情報を奪われる恐れがあります。CVE-2026-33646ほか、修正版2026.6.4へ即更新を。
世界中の開発者が使う環境管理ツール「mise(ミーズ)」に、細工されたプロジェクトのフォルダに入る、あるいはコマンドのタブ補完をするだけで、攻撃者のコマンドが自分のパソコン上で実行されてしまう脆弱性が2件、相次いで公表されました(CVE-2026-33646/CVE-2026-55441)。危険度を示すCVSSは10点満点中、最大で9.6(緊急)。修正版は2026.3.10と2026.6.4で提供されています。
miseは、信用できない設定ファイルを勝手に実行しないよう「信頼の確認(trust)」という安全装置を備えています。ところが今回の2件は、いずれもその確認をすり抜けて、利用者が許可していないコマンドが動いてしまうという、安全装置そのものの抜け穴です。プログラムを書く人にとって、他人のリポジトリ(プログラムの保管庫)をクローンして中に入るのは日常の作業です。本記事では、何が起きるのか、どんな操作が引き金になるのか、いま何をすべきかを順に整理します。
2件の脆弱性の概要
まず要点を一覧にします。どちらも、攻撃の起点は「悪意ある設定ファイルを仕込んだリポジトリを、開発者が手元に持ってくる」ことです。インターネット越しに一方的に踏まれるわけではありませんが、引き金になるのは、フォルダに入る・タスクを一覧表示する・タブ補完するといった、ふだん意識すらしない操作です。
| 項目 | CVE-2026-33646 | CVE-2026-55441 |
|---|---|---|
| 何が起きるか | フォルダに入った瞬間に 任意コマンドが実行 | タスク一覧表示・タブ補完で 任意コマンドが実行 |
| 引き金になる操作 | 細工リポジトリへcd(フォルダ移動) | クローン後に タスクを表示/補完 |
| 悪用される設定ファイル | .tool-versions | タスクの インクルードファイル |
| 欠陥の種類 | コード注入 (CWE-94) | 権限割り当ての不備 (CWE-732ほか) |
| 深刻度 | CVSS 9.6(緊急) AV:N/AC:L/PR:N/UI:R | CVSS 8.6(高) UI:R |
| 対象バージョン | 2026.3.10より前 | 2026.6.4より前 |
| 修正版 | 2026.3.10以降 | 2026.6.4以降 |
| 悪用状況 | 報告なし (KEV未登録) | 報告なし (KEV未登録) |
CVSSが満点の10.0ではなく9.6・8.6にとどまっているのは、攻撃に利用者側のちょっとした操作(UI:R)——フォルダへ入る、タスクを表示する——が必要なためです。とはいえ、他人のコードをクローンして中身を確かめるのは開発者の毎日の仕事であり、前提は容易に満たされます。どちらも開発元のGitHubでセキュリティ勧告(GHSA)として公開され、修正版が出ています。
誰が、何のために狙うのか
この2件が怖いのは、攻撃が「怪しいファイルを開いて実行する」前ですら起きる点です。中身を読もうとフォルダに入った、その瞬間にもう手遅れになり得ます。狙うのは、便利なツールや課題解決法を装った悪意あるリポジトリをばらまく攻撃者、人気プロジェクトに偽の修正提案を送り込むサプライチェーン攻撃者、開発者のパソコンを足場に勤め先の社内システムへ入り込む初期アクセス業者です。彼らにとって開発者の手元は、本番サーバーやソースコードへの「合鍵」が詰まった宝箱だからです。
手口はこうです。攻撃者は一見ふつうのリポジトリに、目立たない設定ファイルを一つ忍ばせておき、開発者がそれをクローンして中に入る、あるいはタスクを一覧表示するだけで、自分の用意したコマンドを相手のパソコンで走らせます。盗み出されるのは、SSHの秘密鍵(サーバーに入るための鍵)、クラウドの接続情報、書きかけのソースコード、署名用の鍵といった、開発者のパソコンに眠る価値ある情報です。
被害は本人だけでは終わりません。クラウドの接続情報を握られれば、攻撃者は本番環境や社内システムへ正規の利用者になりすまして侵入します。盗んだ鍵はそのまま転売され、買い手はソースコードを抜き、ビルドの流れに毒を仕込み、その成果物を使う取引先や利用者にまで被害を連鎖させます。後始末を背負うのは、ツールを使った開発者本人と、所属する開発チーム・情報システム部門です。鍵や認証情報が漏れれば、影響範囲すべてで鍵を作り直し、取引先へ説明し、失った信用を取り戻す長い作業が残ります。被害の入口を断つ最短の手は、ツールを最新版に保つことに尽きます。
そもそもmiseとは何か、なぜ「信頼の確認」が要るのか
miseは、開発者のJeff Dickey(@jdxcode)氏が中心となって開発しているコマンドツールです。プロジェクトごとに必要なプログラミング言語のバージョン(Node.jsやPythonなど)を自動で切り替えたり、よく使う作業(タスク)や環境変数をまとめて管理したりできます。古くから使われてきた同種ツール「asdf」の置き換えとして急速に広がり、GitHubでの注目度を示すスター数は3万を超えています。多くの開発者が、ターミナル(黒い画面のコマンド入力環境)に組み込んで毎日使っています。
ここで重要なのが、miseがターミナルに常駐し、フォルダを移動した瞬間にそのフォルダの設定ファイルを読み込む仕組みだという点です。プロジェクトを切り替えるたびに言語のバージョンが自動で変わる便利さの裏側で、フォルダに入るだけで設定ファイルが解釈される状態が生まれます。
そのため、miseには「信頼の確認(trust)」という安全装置があります。見知らぬフォルダの設定ファイルは、利用者が mise trust という操作で「このファイルを信用する」と明示するまで実行しない、という決まりです。公式ドキュメントでも、これがmiseの安全の土台だと説明されています。今回の2件は、まさにこの土台に穴が空いていたという話です。
2件の脆弱性を個別に見る
CVE-2026-33646:フォルダに入るだけでコマンドが走る(CVSS 9.6)
深刻度が最も高いのがこちらです。miseは、言語のバージョンを記した .tool-versions というファイルを「Tera」というテンプレート機能で処理します。問題は、その処理の中にコマンドを実行する命令(exec())が使える状態のまま残っていたことです。しかも、.tool-versions は前述の「信頼の確認」の対象外でした。公開された勧告は「.mise.toml と違い、.tool-versions には信頼の確認がかからない」と明記しています。
つまり攻撃者は、.tool-versions に細工を仕込んだリポジトリを用意しておくだけでよいのです。miseを有効にした開発者がそのフォルダに cd で入った瞬間、確認画面も警告も出ないまま、仕込まれたコマンドが本人の権限で実行されます。危険度はCVSSで9.6(緊急)、ベクトルは AV:N/AC:L/PR:N/UI:R。対象は2026.3.10より前のすべてのバージョンで、2026.3.10で修正されています。
CVE-2026-55441:設定ファイルのないリポジトリでも、タスク表示で発動(CVSS 8.6)
もう一件は、定型作業をまとめる「タスク」の仕組みに潜んでいました。miseでは、タスクの定義を別ファイルから読み込む「インクルードファイル」が使えます。ところが、勧告によれば、.mise.toml や .tool-versions には信頼の確認がかかる一方、このタスクのインクルードファイルだけは確認を一切通らない経路で読み込まれていました。
厄介なのは、設定ファイルが見当たらない、一見すると無害なリポジトリでも成立する点です。開発者がそれをクローンし、どんな作業が用意されているかを確かめようとタスクを一覧表示したり、コマンドのタブ補完を使ったりするだけで、仕込まれたコマンドが実行されてしまいます。CVSSは8.6(高)、欠陥の種類は権限割り当ての不備(CWE-732)に加え、コマンド注入(CWE-78)やコード注入(CWE-94)にまたがります。対象は2026.6.4より前で、修正版は2026.6.4です。2件はどちらも「信頼の確認をすり抜ける」同じ系統の問題であり、片方だけ直しても不十分なので、必ず新しい方の修正版まで上げる必要があります。
自分が影響を受けるかの早見表
miseを使っているか、どのバージョンか、外部のコードを扱うかでリスクが変わります。下の表で自分の状況を確認してください。バージョンは mise --version で確認できます。
| 状況 | リスク | 優先度 | いま取るべき行動 |
|---|---|---|---|
| 2026.6.4より前で 他人のリポジトリを扱う | マシン乗っ取りの 恐れ(2件とも該当) | 最優先 (即時) | 2026.6.4以降へ更新 |
| 2026.3.10〜2026.6.3 を利用 | タスク経由の 実行が残る | 高 | 2026.6.4以降へ更新 |
| 2026.3.10より前 だが自分のコードのみ | 前提は そろいにくい | 高 | 早めに更新 |
| すでに2026.6.4以降 を利用 | 2件とも 影響なし | 通常 | 自動更新の 有効を確認 |
とくに危ないのは、他人のリポジトリや外部から受け取ったコードを古いmiseで扱う使い方です。チームや会社でmiseを配っている場合は、全員の端末が2026.6.4以降になっているかをまとめて点検してください。mise self-update や、各OSのパッケージ管理ツールで更新できます。
悪用は確認されているのか
現時点で分かっていることと、まだ確認できていないことを分けて整理します。
✓ 確認済みの事実
- ✓
.tool-versionsが信頼の確認を経ずにコマンドを実行でき、フォルダに入るだけで発動する(NVD・CVE-2026-33646) - ✓タスクのインクルードファイルも確認を通らず、タスク表示やタブ補完で実行される(NVD・CVE-2026-55441)
- ✓修正版は2026.3.10と2026.6.4。回避策は示されておらず、更新が根本対策(mise セキュリティ勧告)
? 現時点で未確認のこと
- ?実際に悪用された事例 ― 本記事時点でCISAの悪用が確認された脆弱性リスト(KEV)に未登録で、出回っている攻撃コードも確認できていない
- ?報告者の氏名 ― 公開された勧告には明記されていない
開発者と組織がいま確認すべきこと
最優先は、miseを2026.6.4以降へ更新することです。新しい方のCVEの修正版まで上げれば、2件ともふさがります。回避策は示されていないため、更新が唯一の根本対策です。組織で配っている場合は、各端末のバージョンを点検し、自動更新が有効になっているかも合わせて確認してください。
あわせて、こうした「開いただけ・入っただけで動く」タイプの欠陥全般に効く基本として、信用できないリポジトリを安易にクローンして中に入らない習慣を徹底しましょう。心当たりのないコードを扱った環境では、.tool-versions やタスク設定に見覚えのない記述がないかを確認し、必要なら関係する認証情報(SSH鍵やクラウドのキー)の作り替えも検討してください。同じく開発ツールを狙う攻撃としては、pnpmの乗っ取り級の脆弱性や、エディタZedの悪意あるリポジトリ経由のRCEも記憶に新しいところです。プロジェクトが取り込む外部部品の安全性は、無料のOSS脆弱性スキャナーでも手早く点検できます。攻撃も防御もAIで加速する時代、開発まわりの足元を固める意味は増す一方でございます。
よくある質問
Q. miseを入れているだけで、ネット越しに勝手に乗っ取られますか?
A. いいえ。悪用には、攻撃者が仕込んだ設定ファイルの入ったリポジトリを手元に持ってきて、フォルダに入る・タスクを表示するといった操作が必要です。ただし、他人のコードをクローンして中身を確かめるのは開発者の日常作業なので、古いバージョンで知らないコードを扱うのは危険です。
Q. どのバージョンに更新すればよいですか?
A. 2026.6.4以降にしてください。CVE-2026-33646は2026.3.10で、CVE-2026-55441は2026.6.4で修正されています。2件をまとめてふさぐには、新しい方の2026.6.4以降への更新が確実です。回避策は示されていません。
Q. .tool-versionsファイルとは何ですか?なぜ危ないのですか?
A. プロジェクトで使う言語のバージョンを記しておくファイルです。miseはフォルダに入るとこれを読み込みますが、今回の欠陥では中に書かれたコマンドが信頼の確認を経ずに実行できてしまいました。そのため、細工されたこのファイルを置いたフォルダに入っただけで、攻撃者のコマンドが動いてしまいます。
Q. miseはasdfやnvmと何が違うのですか?
A. いずれもプロジェクトごとに言語のバージョンを切り替えるツールですが、miseはそれに加えて環境変数や定型作業(タスク)の管理までまとめて行えます。asdfの置き換えとして広く使われており、ターミナルに常駐してフォルダ移動時に設定を自動で読み込む点が、今回の欠陥の背景にあります。
まとめ
開発環境管理ツールmiseで見つかったCVE-2026-33646とCVE-2026-55441は、どちらも「信用できない設定ファイルは勝手に実行しない」という安全装置をすり抜けてしまう欠陥です。前者は .tool-versions を置いたフォルダに入っただけで、後者はタスクを表示・補完しただけで、攻撃者のコマンドが本人の権限で走ります。CVSSは最大9.6で、攻撃には「悪意あるリポジトリを手元に持ってくる」前提が要るものの、他人のコードを扱う開発者の日常では容易に満たされます。対策はシンプルで、miseを2026.6.4以降へ更新することに尽きます。あわせて、知らないリポジトリを安易にクローンして中に入らないという基本も、いま一度見直したいところでございます。
参照元

堀川 慎
Backend Engineer / AWS / Django / Go