Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ats-jsonrpc-unrestricted — Apache Traffic Server 10.2.0 - 高 - ローカル - 権限の残留 - JSON-RPC unix ソケットの無制限モード 0777 | Kitploit
ツール/GitHubGitHub/abraxas/ats-jsonrpc-unrestricted
特権昇格脆弱性分析情報収集設定ミスラボと実践
GitHubabraxas/ats-jsonrpc-unrestricted

ats-jsonrpc-unrestricted

Apache Traffic Server 10.2.0 - 高 - ローカル - 権限の残留 - JSON-RPC unix ソケットの無制限モード 0777

リポジトリを見る
14日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - ats-jsonrpc-unrestricted

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-jsonrpc-unrestricted

ats-jsonrpc-unrestricted

分類: 権限の残存 (偵察) 到達範囲: ローカル

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

JSON-RPC unix ソケットはデフォルトで restricted_api が false になる。同梱の jsonrpc.yaml はコメントのみであるため、C++ の初期化子が優先される。Linux の SO_PEERCRED バインドモードは 0777 である。rundir の inode に到達できる任意のローカル uid が、トークンなしで接続し、ライブレコード (SSL の キーパス を含む) および接続トラッカーの 5 タプルをダンプできる。書き込みは SO_PEERCRED (euid == 0 または ATS の euid) の背後に留まる。ドキュメントの表には true / 0700 と記載されているが、コードとコメントアウトされた例は false / 0777 である。

これは CVE-2026-58159 (HTTP UDS リスナーの ACL) ではない。TCP/HTTP の JSON-RPC は存在しない。プラグインのロードと設定の書き込みは、外部の uid に対しては引き続き拒否される。

IDCVE 未割当
分類権限の残存 (偵察)
到達範囲ローカル (ATS ホスト上の非特権 uid)
CWECWE-276, CWE-284
CVSSHigh: 7.1 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
製品Apache Traffic Server
影響を受けるバージョン10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) のデフォルト JSON-RPC unix
認証無制限メソッドには不要。rundir へのローカルファイルシステム到達性。
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1:18720 のみ。イメージ ats-10.2.0-lab:local。

タグ 10.2.0、コミット b1df7334b39a878971c376da849e8da4984918b6 に固定した。ソースからビルドしたイメージである。

攻撃者ができること

ATS ホスト上のローカル uid (root でも ATS の euid でもない)。RPC 有効。JSON-RPC unix 有効。典型的な rundir は 0755 で ATS 所有。ソケットは $RUNTIMEDIR/jsonrpc20.sock。

メソッドシンク権限
uid 10000 で 0777 の jsonrpc20.sock に対して admin_lookup_records無制限 JSON-RPC (RpcAdminPubHandlers.cc)偵察 (ラボで実証): ライブの proxy.config.proxy_name=ATS-JSONRPC-UNRESTRICTED-WITNESS、SSL キーの パス etc/trafficserver、proxy.config.admin.user_id=nobody。キーのバイト列はレコードに含まれない。
get_connection_tracker_info同じソケット偵察 (ラボで実証): インバウンド/アウトバウンドのトラッカーテーブル (無負荷時は空)。
get_server_status、admin_host_get_status、admin_storage_get_device_status、filemanager.get_files_registry同じ無制限ビット偵察 (推測): ドレイン状態、ホストのマークダウン、キャッシュディスクのパス、絶対設定パス。
uid 10000 で admin_config_set_recordsSO_PEERCRED で制限完全性: 遮断済み (ラボで実証)。 JSON-RPC エラー 10 Unauthorized、Denied privileged API access for uid=10000。ウィットネスレコードは変更されない。
drain / キャッシュクリア / ストレージオフライン制限付きメソッド可用性: 遮断済み (外部 uid に対して、ソースより)。

ラボで実証 vs 推測: 0777 ソケット、uid 10000 による proxy_name / SSL キーパスの参照、トラッカーテーブル、書き込み拒否、TCP JSON-RPC の不在: ラボ。その他の無制限読み取りメソッド: 同じゲートからの推測。

必要条件: ATS ホスト上のローカル uid。JSON-RPC unix 有効 (デフォルト)。Linux SO_PEERCRED により無制限バインドが 0777 になる。rundir に到達可能 (典型的には 0755)。

閉じたままの隣接する攻撃面

サーフェスラボ
uid 10000 としての admin_config_set_records未認可、witness レコードは不変
TCP / HTTP JSON-RPC存在せず、HTTP 8080 / 18080 のみ
RPC 経由のプラグイン .so ロードSO_PEERCRED
同一 uid の traffic_ctl意図された管理者
restricted_api が true の場合のアトミックな umask+bind0700、CHANGELOG の修正は維持
CVE-2026-58159 HTTP UDS リスナー ACLこのソケットではない

発見の経緯

rpc.enabled: false でない限り RPC は有効です。存在するのは CommType::UNIX のみです。同梱の jsonrpc.yaml.default はコメントのみです。YAML デコードはキーが存在する場合にのみ restrictedAccessApi を書き込みます。それ以外の場合は次のようになります:

bool restrictedAccessApi{
  NON_RESTRICTED_API}; // ... 0700(default) or 0777

NON_RESTRICTED_API は false です(IPCSocketServer.h:128-129)。コメントには 0700 がデフォルトと書かれています。初期化子は無制限の定数です。

バインド(IPCSocketServer.cc:310-342): restricted_api が false かつ SO_PEERCRED の場合 -> モード 0777。ドキュメントの表の最後の文にはデフォルトで true と書かれています。コードとコメントアウトされた例は false に従っています。

誤った方向性: ドキュメントの true をデフォルトとみなすこと。これを RCE と呼ぶこと(書き込みは拒否されます)。CVE-2026-58159 が mgmt JSON-RPC をカバーしているとみなすこと。古い traffic_manager XMLRPC の TCP 残存物を探すこと。

シアター: uid 10000 としての書き込み。オラクルは仕込まれた proxy_name と SSL キーパスの文字列、そして拒否されたセットです。

ラボ

python3 ats-jsonrpc-unrestricted-Abraxas-Labs.py

または

cd lab
./run.sh

ループバック 127.0.0.1:18720。Compose プロジェクト ats-jsonrpc-unrestricted。イメージ ats-10.2.0-lab:local。ラボ uid 10000。ソケットモード 0777。ウィットネス ATS-JSONRPC-UNRESTRICTED-WITNESS。最終行:

SUCCESS ats-jsonrpc-unrestricted how=uds-0777-unrestricted-jsonrpc uid=10000 sock-mode=0777 lookup-proxy_name=ATS-JSONRPC-UNRESTRICTED-WITNESS ssl-key-path=etc/trafficserver tracker=ok write=unauthorized tcp-jsonrpc=absent ATS-JSONRPC-UNRESTRICTED-WITNESS

修正

restricted_api をデフォルトで true にし、0700 でバインドして、ドキュメントの表と一致させます。コメント化された jsonrpc.yaml の例を整合させます。無制限の読み取りは明示的なオプトインの背後に留めます。書き込みはすでに SO_PEERCRED を要求しているため、開放しません。

参考資料

  • github.com/apache/trafficserver タグ 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6)
  • IPCSocketServer.h restrictedAccessApi
  • IPCSocketServer.cc バインドモード 0777
  • RpcAdminPubHandlers.cc
  • jsonrpc.yaml.default
  • CWE-276 · CWE-284
ツールをダウンロード