Sonatypeは2026年10月15日、ソフトの部品を置いて配る倉庫「Nexus Repository 3」の脆弱性4件を公表しました。最も深刻な1件は、ロール(権限のまとまり)を作れる利用者が、自分の権限を管理者まで広げられるもの(権限昇格)です。直した版の3.97.0は、前日の10月14日に出ています。
悪用の報告は、10月17日時点でありません。Sonatypeの告知、NVD、米国CISA、ドイツのCERT-Bundで確かめた内容だけを書きます。
Nexus Repositoryが乗っ取られると何が困るか
Nexus Repositoryは、開発で使う部品(パッケージ)を1か所に集めて配るサーバーです。Javaのライブラリ、npmやNuGetのパッケージ、Dockerのイメージなどを置けます。Sonatypeは、部品やビルドの成果物をまとめて管理する「中心の管理点」と説明しています。
開発者のパソコンやビルドの仕組みが、公開のサイトから直接ではなく、Nexusを通して部品を取る形はよくあります。この形では、Nexusの中身を書き換えられると、社内で作るソフトに悪いものが混ざるおそれがあります。ソフトのサプライチェーン(部品の供給の流れ)を狙う攻撃です(この段落は編集部の整理です)。
Sonatypeの告知も、管理者の権限があれば何ができるかを書いています。
With administrative access, the user can read and change repositories, users, roles, and configuration on the instance.
出典: Sonatype「CVE-2026-97712 Nexus Repository 3 - Privilege Escalation via Role Management」
管理者の権限があれば、リポジトリ(部品の置き場所)、利用者、ロール、設定を読み、変えられるという意味です。どの部品を誰に配るかを決める場所なので、権限を誰に渡すかがそのまま守りになります。
米国CISAのKEV(悪用が確認された脆弱性の一覧)には、Nexus Repositoryの古い脆弱性が2件載っています。CVE-2019-7238とCVE-2020-10199で、どちらも遠隔でコードを実行できるもので、2021年に一覧に加わりました。
10月15日に公表された4件
Sonatypeは、4件それぞれの告知をサポートのサイトに載せました。CVSSは、脆弱性の深刻さを0から10で表す指標です。下の表の値は、Sonatypeが付けたCVSS 4.0の値です。
| CVE |
Sonatypeの説明(要約) |
CVSS 4.0 |
対象の版 |
| CVE-2026-97712 |
ロールを作る・変える権限を持つ利用者が、最大で管理者の権限まで得られた |
8.7(High) |
3.0.0〜3.96.4 |
| CVE-2026-97665 |
NuGetのリポジトリに、読み取りと閲覧の権限だけでシンボルパッケージを置けた |
7.1(High) |
3.95.0〜3.96.x |
| CVE-2026-97666 |
ログインなしで、特定のクラス(プログラムの部品)があるかを調べられた |
6.9(Medium) |
3.0.0〜3.96.x |
| CVE-2026-97667 |
Rのパッケージの情報にスクリプトを仕込み、画面を開いた人のブラウザーで動かせた |
5.1(Medium) |
3.28.0〜3.97.0より前 |
直した版は4件とも、無料のCommunity Edition(CE)と有料のProに共通の3.97.0です。Sonatypeは「3.97.0以降」に上げるよう勧めています。
Sonatypeのセキュリティの告知の一覧。上の4件が10月15日の分出典: Sonatype(引用)
ドイツのBSI(連邦情報セキュリティ庁)のCERT-Bundも、4件をまとめた注意情報(WID-SEC-2026-4004)を出しました。深刻度は「hoch」(高)、CVSSの基本値は8.8で、日付はドイツ時間の10月16日です。
管理者の権限まで広げられるCVE-2026-97712
対象は、ロールを作る権限(nx-roles-create)か、変える権限(nx-roles-update)を持つ利用者です。この利用者が、自分の持たない権限をロールに入れ、自分やほかのアカウントに管理者と同じ権限まで与えられました。
狙うには、Nexusの画面にネットワークで届くことと、上の権限のどちらかが要ります。2つの権限を信頼できる管理者だけが持つ環境では、危険は増えない、とSonatypeは説明しています。
3.97.0からは、自分が持っているロールと権限しか、ロールに入れられなくなります。Sonatypeは、上げる前にこの権限を持つ利用者がいたなら、ロールと利用者に意図しない権限がないかを見直すよう勧めています。
SonatypeのCVE-2026-97712の告知。対象の版、直った版、CVSSが並ぶ出典: Sonatype(引用)
読み取りの権限で部品を置けたCVE-2026-97665
NuGetは、.NETで作るソフトの部品の形式です。Nexusは3.95.0から、不具合の調べに使う「シンボル」を配る機能(Symbol Server)に対応しました。この不備がある版は、3.95.0から3.96.xまでです。
対象は、Symbol Serverが有効なNuGetのhostedリポジトリ(自社の部品の置き場所)です。読み取りと閲覧の権限だけで、シンボルパッケージ(.snupkg)を置けました。本来は、書き込みの権限が要る操作です。
匿名アクセス(ログインなしの利用)が有効なら、この条件はログインなしでもそろいます。匿名のユーザーは、既定ですべてのリポジトリの読み取りと閲覧の権限を持つためです。
ログインなしで中を探れたCVE-2026-97666
ExtDirectは、Nexusの画面がサーバーとやり取りする仕組みです。その窓口の1つ(readReferences)が、3.0.0から認証なしで使える状態でした。
攻撃者は、ログインなしで、ある名前のクラスがNexusの中にあるかを確かめられました。入っているライブラリやプラグインが分かるおそれがあります。Sonatypeは、これだけでコードの実行やファイルの読み取り、データの書き換えはできないとしています。
米国CISAの評価(SSVC)では、4件のうちこの1件だけ、攻撃を自動で繰り返せるか(automatable)が「yes」です。インターネットから画面を開けるNexusでは、優先して塞ぎたい窓口です(編集部の補足)。
画面を開いた人のブラウザーで動くCVE-2026-97667
XSS(クロスサイトスクリプティング)は、画面に不正なスクリプトを仕込み、開いた人のブラウザーで動かす攻撃です。stored型は、仕込んだものがサーバーに残ります。
Rのhostedリポジトリの編集権限を持つ利用者が、Rのパッケージの情報にスクリプトを入れられました。別の利用者がBrowseの画面でその情報を開くと、開いた人の権限でスクリプトが動きます。開いた人が管理者なら、管理者の操作もできてしまいます。
Rは統計の分析に使う言語で、Rのリポジトリは既定では作られません。Rのhostedリポジトリが1つもなければ、条件はそろいません。3.97.0の修正は、上げる前に置かれたパッケージにも効く、とSonatypeは書いています。
上げるまでの回避策
Sonatypeは、CVE-2026-97665を除く3件について、設定を変えるだけで完全に防ぐ方法はないと書いています。それでも、狙われる範囲は狭められます。3件の告知に共通するのは、画面を開ける範囲を信頼できるネットワークに絞ることです。
| CVE |
Sonatypeが示すほかの回避策 |
| CVE-2026-97712 |
nx-roles-createとnx-roles-updateを、信頼できる管理者だけに持たせる。持っている人と、その人が変えられるロールを見直す |
| CVE-2026-97665 |
NuGetのhostedリポジトリのSymbol Serverを止める。または、そのリポジトリの読み取り・閲覧の権限を、信頼できるアカウントだけにする |
| CVE-2026-97666 |
リバースプロキシ(前に置く中継のサーバー)で、/service/extdirect への要求に認証を求める |
| CVE-2026-97667 |
Rのhostedリポジトリの編集権限を、信頼できる利用者だけにし、匿名のユーザーには与えない。使っていないRのhostedリポジトリは消す |
Sonatypeの文書では、Symbol Serverは設定のファイルで止められます。nexus.propertiesに「nexus.nuget.symbol.server.enabled=false」と書き、再起動します。
匿名アクセスの設定は、Settings → Security → Anonymous Accessの画面にあります。Classic UI(従来の画面)では、Settings → Anonymous Accessです。
悪用の報告はなく、NVDの分析はまだ
Sonatypeは、CVE-2026-97665を除く3件について、告知の時点で悪用を把握していないとしています。CVE-2026-97665の告知には、悪用についての記載がありません。
米国CISAのKEVには、4件とも載っていません(10月16日版で確認)。CISAの評価(SSVC)も、4件とも悪用は「none(なし)」です。乗っ取られたときの影響は、CVE-2026-97712だけが「total(全面的)」です。
NVD(米国の脆弱性データベース)は、10月17日時点で4件とも分析の前(Awaiting Analysis)です。出ているCVSSは、Sonatypeの値です。GitHubのAdvisory Databaseの4件は確認前(unreviewed)で、中身はCVEの記載と同じです。
CERT-Bundの要約には「任意のプログラムコードの実行」も挙がっていますが、Sonatypeの4件の告知に、サーバーでコードを実行できるという記載はありません。CVE-2026-97666について、Sonatypeは単独ではコードの実行につながらないと明記しています。
3.97.0のリリースノートには、今回の4件のCVEの番号は載っていません(10月17日に確認)。中身と回避策は、サポートのサイトの告知で確かめます。
3.97.0に上げる前に知っておくこと
古い版のままなら、ほかの告知も当てはまる
Sonatypeの一覧で題の日付を数えると、2026年のNexus Repository 3の告知は、今回の4件を含めて35件です。題に遠隔でのコードの実行(RCE)とあるものも、4月8日、6月16日、8月7日に1件ずつあります。3.97.0に上げれば、8月7日のCVE-2026-17603(3.95.0で修正)と、9月2日のCVE-2026-77124(3.96.0で修正)も直ります。
利用状況の送信(テレメトリー)の承認が必須になる
3.97.0から、利用状況の基本のデータ(テレメトリー)を、Sonatypeへ送ることが必須になりました。新しく入れたときも、3.97.0以降に上げたときも、管理者が画面で一度承認します。
送るのは、1日のリクエストの数や、置いている部品の数などです。Sonatypeは、利用者名、パスワード、ホスト名、リポジトリや部品の名前は集めないと説明しています。
送れない状態が続くと、猶予の期間に入ります。期間はCommunity Editionが10日、Proが45日で、過ぎても送れないとNexusは読み取り専用になります。
古い版から上げるときは段取りが要る
版によっては、1回では最新まで上げられません。Sonatypeの更新の経路の文書には、次の注意があります。
| 今の版・状態 |
Sonatypeの文書にある注意 |
| 3.70.x以前で、データベースがOrientDB |
まず3.70.5に上げ、データベースをH2かPostgreSQLへ移す。3.71.0で、OrientDBとJava 8・11への対応が終わった |
| 3.69より前で、組み込みのH2 |
3.69でデータベースを書き出し、3.70.0〜3.87.1で読み込んでから先へ進む |
| 3.87.0より前 |
3.87.0からは同梱のJava 21で動く。前のJavaの証明書の保存先は引き継がれず、足した証明書は入れ直しが要る |
| 3.85.0より前 |
上げた後に「Repair - Rebuild repository search」のタスクを手で動かす |
サポートの期限
Sonatypeは、各版を出てから1年を通常のサポート、続く6か月を延長の保守とし、その後に提供を終えます。3.97.0の提供終了は、2028年4月14日の予定です。
Sonatypeの表では、3.79までの版は提供終了の日を過ぎました。3.80.0は2026年11月6日、3.81系は12月10日に終わります。
クラウド版とNexus Repository 2の扱い
4件の告知は、自分で動かすCEとProの版番号で対象を書いています。Sonatypeが運用するクラウド版(Nexus Repository Cloud)についての記載はありません。
クラウド版のリリースノートの9月16日の欄に、ロールに入れる権限とロールは、すべて自分が持っている必要がある、という変更が載っています。CVE-2026-97712の修正の説明と同じ中身ですが、CVEとの関係は書かれていません。
Nexus Repository 2は、4件の告知の対象に挙がっていません。2は2025年6月30日に提供が終わり、機能の追加も不具合の修正も出ません。Sonatypeは、できるだけ早く3へ移すよう勧めています。
影響する会社・しない会社
- 影響する: Nexus Repository 3(CEかPro)を自社で動かし、版が3.97.0より前の会社。自社のサーバー、クラウドの仮想マシン、Dockerなどで動かす形です。CVE-2026-97712とCVE-2026-97666は、3.0.0以降のすべての版が対象です
- 影響する: 開発会社や委託先が、自社のソフトの部品の置き場所としてNexusを動かしている会社。版は、運用している側に聞かないと分かりません
- 影響する: とくに急ぐのは、画面をインターネットから開けるNexusを持つ会社です。CVE-2026-97666はログインなしで狙えます。匿名アクセスが有効で、Symbol Serverを使う3.95.0〜3.96.xは、CVE-2026-97665の条件もログインなしでそろいます
- 影響しない: 3.97.0以降に上げた会社(今回の4件について)
- 影響しない: Nexus Repositoryを使っていない会社
- 確認が要る: クラウド版だけを使う会社。告知にクラウド版の記載はありません。気になる場合は、Sonatypeのサポートに聞きます
- 確認が要る: Nexus Repository 2を使う会社。4件の対象には挙がっていませんが、2は提供が終わっていて、修正は出ません
情シスが今日やること
- Nexusを使っているか、誰が運用しているかを洗い出します。 開発部門に、部品の置き場所としてNexus Repositoryを使っているかを聞きます。委託先が自社向けに動かしていることもあります。社外(インターネット)から画面を開けるかも確かめます。
- 今の版を確かめます。 3.97.0より前なら対象です。運用の担当者に版の番号(例: 3.96.4)を聞くか、管理者がSettingsの「Support」にある「System Information」の画面で確かめます。この画面には、nx-atlasの権限が要ります。
- 上げるまでの守りを、今日のうちに足します。 上の「上げるまでの回避策」の表から、自社に当てはまるものを入れます。まず画面を開ける範囲を社内のネットワークなどに絞り、ロールを作る・変える権限を持つ人を確かめます。ロールは、Settings → Security → Rolesの画面で見られます。
- 3.97.0へ上げる日を決め、開発部門に知らせます。 上げる前にバックアップを取り、テレメトリーを送れるかを確かめます。3.70以前や3.87より前の古い版からは、上の表の段取りが要ります。
- 上げた後に、ロールと権限を見直します。 上げる前に、ロールを作る・変える権限を持つ利用者がいたなら、意図しない権限がないかを確かめて外します(Sonatypeの勧め)。Symbol Serverを使っていたなら、覚えのないシンボルパッケージがないかも見ます(編集部の補足)。
開発会社・委託先への聞き方
次の聞き方は、Sonatypeの告知にある内容から作った編集部の整理です。答えは文書で返してもらいます。
- 当社のソフトの開発やビルドで、Nexus Repositoryを使っているか。自分で動かす版か、クラウド版か
- 自分で動かす版なら、今の版は何か。10月15日に公表された4件(CVE-2026-97712ほか)の対象に当たるか
- 3.97.0へ上げる予定日はいつか。それまでに、どの回避策を入れたか
- 画面はインターネットから開けるか。匿名アクセスは有効か
- ロールを作る・変える権限(nx-roles-create・nx-roles-update)を、誰が持っているか
- NuGetのSymbol Serverや、Rのhostedリポジトリを使っているか