NextScan管理画面に認証回避の脆弱性、修正版は未確認
NextScan 1.1.0から1.2.0の管理画面ns-adminに、固定の署名鍵を悪用されて認証なしで管理者として操作される脆弱性が公表されました。スキャナーを運用している組織は、管理画面に到達できる範囲を絞り、使用中の版と不審な操作を確認してください。
急ぎ度: 至急
CVSS v3は9.8、v4は9.3で、認証も利用者の操作も要らず、署名鍵が設定で差し替えられない構造のため、管理画面に到達できる環境では修正版の有無にかかわらず早い手当てが要ります。
関係があるか
脆弱性スキャナーのNextScanを自社で動かし、管理画面のns-adminにネットワークから到達できる環境が対象です。公式のDocker Compose構成ではポート80で公開されます。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| NextScan(管理画面 ns-admin、イメージ lysec/ns-admin) | 1.1.0から1.2.0。公開イメージの1.1.0、1.1.1、1.2.0は同じ鍵を含んでいます | 修正版の版番号は公表されていません |
確かめ方
- 1NextScanを導入しているかを、構成管理表やDocker Composeのファイルで確認します。ns-admin、ns-scan、ns-craw、lysec/ns-adminのイメージ名があれば該当の可能性があります。
- 2ns-adminのイメージのタグを確認します。公式のComposeはlatestを指定しているため、タグだけでは版が分からないことがあります。その場合は、イメージを取得した時期と導入時の記録から版を特定してください。
- 3ns-adminのポートに、どのネットワークから到達できるかを確認します。インターネット側、社内全体、管理者端末のみのどれかで、急ぎ度が変わります。
何が起きたか
NextScanの管理画面ns-adminに、ログインしていない第三者が管理者になりすませる脆弱性があります。管理APIの署名に使う鍵がプログラムに固定されており、同じ鍵が公開イメージにそのまま入っているためです。
管理APIはX-Access-TokenをHS256で検証します。ところが鍵はns-adminの実行ファイル内の定数で、設定ファイルにも環境変数にも鍵を指定する項目がありません。利用者が自分の環境で鍵を入れ替える手段がないということです。
さらに、署名の検証を通ったあとは、トークンに含まれるidとroleIdsを読むだけで、そのユーザーが実在するか、役割が有効かは確認しません。このため、署名さえ合えば管理者として扱われます。CWEはCWE-321(ハードコードされた暗号鍵の使用)で、2026年11月11日に公表されました。
同じ報告には、アセット詳細画面で保存されたデータが画面に埋め込まれ、スクリプトが実行される別の問題も載っています。対象の版は同じです。
攻撃の流れ
-
1
鍵の入手
公開されているイメージに、全利用者共通の署名鍵が固定で入っています。
-
2
トークン偽造
その鍵で署名した、管理者の役割を示すトークンを自作します。
-
3
管理APIへ送信
署名だけが検証され、ユーザーの実在などは確認されないため、管理者として受け付けられます。
-
4
管理機能の掌握
ユーザー管理、スキャンタスク、保存された脆弱性の結果を操作できます。
どう悪用されるか
ログインは要らず、利用者に何かをさせる必要もありません。ns-adminの管理APIにネットワークから届けば足ります。勧告にも前提条件は「なし」と書かれています。
成功すると、ユーザーの追加や変更、スキャンタスクの操作、保存された脆弱性の結果の閲覧ができます。結果には、自社の資産とその弱点の一覧が含まれるため、漏れた場合の影響は管理画面だけにとどまりません。
別に報告されたアセット詳細画面のスクリプト実行は、スキャンの対象に攻撃者が管理するサイトが含まれる場合の問題です。
今すぐやること
-
1
稼働中のイメージを控え、修正版の有無を確認する
現在のイメージ名とタグを記録します。そのうえでNextScanのリポジトリとIssue 48で、1.2.0より新しい修正版が出ていないかを確かめ、あればテスト環境で動作を見てから更新します。
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" -
2
不審な管理操作の跡を調べる
ユーザー一覧に覚えのないアカウントがないか、身に覚えのないスキャンタスクが作られていないかを見ます。管理APIへのアクセスログで、管理者の端末以外からの接続も洗い出してください。偽造トークンはユーザーの実在を確認されないため、アカウント一覧に痕跡が残らないことがあります。
-
3
保存された結果の扱いを見直す
管理画面が外部から到達できる状態だった場合は、保存済みの脆弱性結果が見られた前提で、結果に載る資産の優先度を見直します。公式Composeにある初期値のままのパスワード(Redis、MongoDB、etcd、MinIO)が残っていれば、あわせて変更します。
-
4
使っていないインスタンスを止める
検証用や試用で立てたまま放置している環境は、停止して撤去します。修正版が確認できるまでの間、攻撃を受ける面を減らせます。
修正版がないあいだのつなぎ
鍵は設定では入れ替えられないため、NextScan側の設定では防げません。ns-adminのポートへの到達を、ファイアウォール、VPN、IPアドレス制限で管理者の端末だけに絞ります。インターネットに公開している場合は、先にそこを閉じてください。前段のリバースプロキシでBasic認証などを課す方法も、管理APIに要求が届く前に止められるため有効です。ただし、これらは修正版が出るまでのつなぎです。
背景
NextScanは、Tongcheng Travel Information Security Teamがオープンソースで公開している脆弱性スキャナーです。ns-adminが管理画面とAPIを受け持ち、ns-scanとns-craw(クローラー)がスキャンを行い、結果はデータベースに蓄えられます。つまりns-adminを奪われると、自社の資産の一覧と、その弱点の一覧がまとめて見られます。
署名鍵を製品に固定すると、全利用者が同じ鍵を使うことになります。合鍵が全戸共通のマンションのようなもので、一人が型を手に入れれば、どの部屋にも入れます。今回の鍵は、公開イメージを取得するだけで実行ファイルから取り出せると勧告に書かれており、設定で差し替える項目もありません。利用者側で鍵を管理して守る方法が、そもそも用意されていない点が問題です。
よくある質問
Q.管理者のパスワードを変えれば防げますか。
まだ分かっていないこと
- 修正版の版番号と公開時期は公表されていません。
- 実際の攻撃で悪用された事例は、公表されていません。
- アセット詳細画面のスクリプト実行の問題に、別のCVE番号や修正が用意されているかは分かっていません。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| tongcheng-security-teamNextScan |
1.1.0 〜 1.2.0→ 記載なし |
記載なし |
この記録には修正版の版が載っていません。修正版の有無と版は、本文か参照URLのベンダーの勧告で確かめてください。
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
NextScan 1.1.0 through 1.2.0 contains an authentication bypass vulnerability in ns-admin that allows unauthenticated attackers to forge administrator tokens using a hardcoded JWT signing key. Attackers can sign an HS256 X-Access-Token carrying the public super administrator role ID to gain full access to user management, scan tasks and stored vulnerability results.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- advisory vul.yulun.ac.cn
- advisory vulncheck.com
- advisory nvd.nist.gov
- advisory github.com
- report github.com
- web github.com
- web hub.docker.com
- web vul.yulun.ac.cn
- web github.com