CVE-2026-21902として記録された重大な脆弱性が、Junos OS Evolved アーキテクチャを基盤とするJuniper PTXルーター内で発見されました。これにより、認証されていない攻撃者が絶対的なroot権限を持つリモートコード実行(RCE)を組織することが可能になります。Juniperはこの壊滅的な欠陥を、ボックス内異常検知フレームワーク内に組み込まれた重大なリソースを管轄するアクセス制御の深刻な不適切な配分として描写しています。アーキテクチャ上の設計では、この診断サービスは厳密に隔離されたままであり、専用の内部ルーティングインスタンスを介して内部のシステムプロセスのみでアクセス可能で、外部ネットワークインターフェースからの進入を明示的に禁止されるはずでした。攻撃者がネットワーク経由でこのサービスとの通信に成功すれば、フレームワークを操作する機能を確保し、デバイス全体の完全な支配に至ります。この危険をさらに悪化させるのは、このコンポーネントがデフォルトで有効化され、追加の設定を必要としない点です。
この脆弱性はPTXシリーズの機器に特異的に影響を与えます。Juniperの公式勧告では、影響を受けるバージョンがJunos OS Evolved 25.4からバージョン25.4R1-S1-EVOおよび25.4R2-EVOに及ぶと明記されており、25.4R1-EVOより前のビルドは現在安全であると見なされています。PTXシリーズ自体は電気通信インフラストラクチャの最前線を表しており、キャリアコアネットワーク、重要なピアリング交換、および莫大な相互接続ハブ全体に普遍的に展開されています。これらの特殊なルーターは、超高速の遅延なしスループット、極小の遅延、および非常に多いポート密度を提供するために細心に設計されています。従来のJunos OSはFreeBSDカーネルに基づいていましたが、Juniperはリモートコード実行(RCE)をより詳細に記述しており、Junos OS Evolvedによって大きなパラダイムシフトを実行し、高度にモジュール化された、コンテナ化されたアーキテクチャを特徴とするLinux基盤に移行しました。
厳格な法医学的検証により、アーキテクチャ内で能動的に動作しているネットワークサービスの疑いなき存在が明らかになり、ボックス内異常検知フレームワークと密接に関連していました。能動的なネットワークソケットの体系的な監査により、以下の寒気がする状況が明らかになりました:
| プロトコル | バインディングIP | ポート | アプリケーション | 説明 |
| TCP | 0.0.0.0 | 22 | SSH | xinetd |
| TCP | 0.0.0.0 | 53 | DNS | dnsmasq |
| TCP | 0.0.0.0 | 830 | SSH上のNETCONF | xinetd |
| TCP | 0.0.0.0 | 8160 | ボックス内異常検知フレームワーク | /usr/sbin/monitor/api_server.py |
| TCP | [::] | 22 | SSH | xinetd |
| TCP | [::] | 53 | DNS | dnsmasq |
| TCP | [::] | 830 | SSH上のNETCONF | xinetd |
| UDP | * | 53 | DNS | dnsmasq |
| UDP | * | 123 | NTP | ntpd |
| UDP | * | 161 | SNMP | snmpd |
| UDP | * | 514 | Syslog | eventd |
| UDP | 0.0.0.0 | 6123 | Junos NTP | jsntpd |
| UDP | 0.0.0.0 | 8503 | ルーティングプロトコルデーモン | rpd |
異常検知サービスはポート8160/TCPで能動的に盗聴し、テレメトリーが実証するように、0.0.0.0にバインドされており、デバイスのIPv4インターフェース全体にわたって過度に露出していることが実質的です。これらの陰鬱な疑いは、システム内から掘り出されたHTTPサーバー初期化コードによってさらに固まっています:
server_addressタプル内の著しく空虚な文字列は疑いなく、すべての利用可能なインターフェースへのユニバーサルバインディングを指示しています。このサービスは本質的にはPythonで構築されたRESTful APIとして機能し、最高のroot権限で実行されます。このプラットフォームの運用上の指令は著しく広範です:複雑な診断プロトコルの定義、スケジューリング、および実行のための導管として機能し、発見された異常への運動反応を調整し、新しいヒューリスティック検出ロジックを統合し、および外部監視機器とは完全に独立して、ハードウェア障害、トラフィック異常、およびプロトコル違反を含む無数の問題を法医学的に解剖します。
このサービスの内部アーキテクチャは4つの基本的な柱の周りに構築されています。最初のエンティティはコマンドで、ハードウェア上で実行される正確な指令を表します。2番目の構成要素はハンドラーで、実行されたコマンドの結果の出力を解析および解釈する任務を負った実体です。3番目のコンポーネントはDAG(有向非環グラフ)で、アクション(コマンド、ハンドラー、またはネストされたサブグラフであるかどうかにかかわらず)の連続的な振付を描写する洗練された位相構成です。最後に、DAGインスタンスはグラフの運動の具現化を表し、正確な時間スケジュールに密接に結合されています。このアーキテクチャの構想だけで、このシステムが自律的にルーター上の任意のコマンドを呼び出す本質的な能力を有しているという恐ろしい現実を明らかにします。最高の実存的な質問はこのようになりました:この強大な能力は外部実体によって操作されるかもしれませんか?肯定的な答え、公開された法医学的解剖に細心に詳述されたのは、壊滅的でした。
このフレームワークを統治するコア実行ファイルは、デバイスのファイルシステム内の/usr/sbin/monitor/ディレクトリに顕著に存在しています。調査官は4つの主要なコンポーネントを隔離しました:
-
python3.10 /usr/sbin/monitor/anomaly_detector_main.py– 補助的なPythonサブプロセスの絶え間ない保存を任務とする基本的なPythonスクリプト。 -
python3.10 /usr/sbin/monitor/api_server.py– リクエストテレメトリーをローカルファイルに取り込んでアーカイブすることを義務付けられたHTTP APIサーバー。 -
python3.10 /usr/sbin/monitor/intent_monitor.py– 定義上の更新についてエコシステムを定期的に監査し、その後APIサーバーの台帳と同期します。 -
python3.10 /usr/sbin/monitor/schedule_enforcer.py– スケジュールされたDAGインスタンスの実行を定期的にトリガーする厳格なオーケストレーター。
anomaly_detector_main.pyは警戒心の強い番兵として機能し、その部下プロセスの壊滅的な崩壊を防ぎます。api_server.pyは受け取ったHTTPリクエストを処理し、収集されたデータを細心に記録します。intent_monitor.pyは定義的更新を取り込むために定期的なリズムを確立し、APIサーバーと調和させます。最後に、schedule_enforcer.pyは実行者の外套を引き継ぎ、その規定されたスケジュールに厳密に従ってDAGインスタンスを無情に呼び出します。
このサービスが公開しているHTTPメソッドと対応するエンドポイントのレパートリーは、完全に正当で平凡な設定管理インターフェースを不気味に模倣しています。公開された法医学的分析は、以下の恐ろしい台帳を列挙しています:
| メソッド | パス | 説明 |
| GET | /anomaly |
登録されたすべての異常を取得します。 |
| GET | /config/schedule/<component> |
コンポーネント上で実行する新しいDAGインスタンスを取得します。 |
| GET / POST / PUT / DELETE | /config/dag/<dag-name> |
DAG設定を取得、作成、更新、または削除します。 |
| GET / POST / PUT / DELETE | /config/command/<command-name> |
コマンド設定を取得、作成、更新、または削除します。 |
| GET / POST / PUT / DELETE | /config/handler/<handler-name> |
ハンドラー設定を取得、作成、更新、または削除します。 |
| GET / POST / PUT / DELETE | /config/dag-instance/<dag-instance-name> |
DAGインスタンス設定を取得、作成、更新、または削除します。 |
| GET / POST | /config/commit |
ワークスペース設定と既存設定の共用体を検証します。POSTで有効な場合、ワークスペース設定を保存します。 |
| GET / POST | /output/dag-instance/<dag-instance-name>/iteration/<iteration>/component/re |
REの反復実行時に特定のDAGインスタンスの出力を取得または保存します。 |
| GET / POST / DELETE | /alarm/dag-instance/<dag-instance-name>/component/re |
RE上のDAGインスタンス実行によって発生したアラームを取得、保存、または削除します。 |
| POST | /anomaly/dag-instance/<dag-instance-name>/iteration/<iteration>/component/re |
RE上でDAGインスタンス実行によって発生した異常を登録します。 |
最も奥深く致命的なセクターはコマンド自体の設定の中にあります。このサービスはコマンドオブジェクトの合成を可能にし、その中で攻撃者は構文フィールドに任意の文字列をシームレスに挿入することができ、システムはその後盲目的にそれを実行します。公開されたエクスプロイト・パラダイムでは、リモートコード実行の達成は初歩的な指令の挿入のみを必要としました:id > /var/home/admin/watchTowr.txt。重要なことに、RE-SHELLアーキタイプの割り当ては、サービスに基盤となるオペレーティングシステム上で未変更のシェルコマンドとして文字列を処理するように明示的に指示します。
そのような有毒なコマンドを作成するために必要なHTTPリクエストの元のアーキテクチャ設計図は以下のように現れています:
その後、DAGインスタンスが合成され、グラフを実行する必要がある正確な時間をサービスに明示的に命令します。公開されたキルチェーンでは、この実行は瞬時に義務付けられており、時間的遅延から全く解放されています。この瞬時の爆破は以下のリクエストを介して達成されます:
このオーケストレーションの最終段階では、クライアントは設定を固定化するための決定的なコミットリクエストを送信します。この行為に続いて、以前のオブジェクトはローカルファイルに不変の形で刻み込まれ、厳格なschedule_enforcerオーケストレーターによって処理されるのを熱心に待っています:
POST /config/config/commit HTTP/1.1 Host: <hostname> Content-Type: application/json Content-Length: 0
この絶壁から、サービスの内部ロジックは完全なコマンドを引き継ぎます。最高の機能は特定のDAGインスタンスに対して規定されたスケジュールを摂取します。必須の時間検証に続いて、それは無情にexecute_dag_instanceを呼び出します。これは連鎖的な実行を開始します:execute_dagがトリガーされ、run_bfs_on_dag_actionsに抗しがたく導き、最終的にexecute_commandの運命的な呼び出しで頂点に達します。それはこの機能の坩堝の中の正確にあります構文フィールドが無情に抽出され、その悪意のある内容がsubprocess.run(...)に盲目的に流され、いかなる衛生化またはろ過からも完全に欠落しています。公開された解剖は生のソースコードを通じてこの壊滅的な連鎖反応をトレースします:
ここで多くの壊滅的な詳細が結晶化しています。まず、ロジックはDAGの設定から直接派生したコマンド文字列を自律的に合成します。次に、RE-SHELLアーキタイプに関しては、絶対に補助的な構文的枠組みは課されません:構文フィールドから抽出された未変更の文字列はcomponent_command_mapping['re']にシームレスに挿入されます。第3に、subprocess.runの壊滅的な呼び出しはshell=Trueパラメーターを明示的に活用し、文字列が基盤となるシェルによって直接および本来的に処理されることを保証しています。攻撃者にとって、これは完全に準備されたリモートコード実行エクスプロイトを表しています – 重要なことに、全能のroot権限で実行されます。サービス自体がスーパーユーザーの主権権限下で動作するためです。
最終的に、このキルチェーン全体は、そのような莫大な重大性の重大な脆弱性に対して矛盾的に単純に見えるように見えます。遠隔の攻撃者は、ログイン認証情報またはパスワードから完全に欠落し、単にコマンドを鍛造し、その後DAGを定義し、DAGインスタンスを登録し、設定を完成させ、オーケストレーターがタスクを実行する避けられない瞬間を待つリクエストをディスパッチします。コマンドはその後ルーター上で完璧に爆破します。認証のための別個の脆弱性またはビザンチン回避技術は全く必要です。単に、進入インターフェースはすでに外部領域に壊滅的に露出しているためです。
これらの壊滅的な要因の収束が、CVE-2026-21902がCVSSスケールでほぼ絶対的な最大評価を与えられた理由です。成功した悪用は攻撃者に脊椎ルーター(電気通信事業者のネットワーク内の重大なセグメントの基盤を頻繁に形成するハードウェア、最高のインターネット交換ポイント、または莫大なハイパースケールインフラストラクチャ)に対する完全な自由な支配を与えます。このような規模の機器の場合、妥協は単一のサービスの局所化された障害を超えています:それは、スタッシングボリュームのグローバルトラフィックが絶えず流れている重要なネットワーク中枢を通じて敵対的な手に対する絶対的なコントロールの深刻で実存的な危険を告げています。