Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ats-jsonrpc-unrestricted — Apache Traffic Server 10.2.0 - 高危 - 本地 - 权限残留 - JSON-RPC unix socket 无限制模式 0777 | Kitploit
工具/GitHubGitHub/abraxas/ats-jsonrpc-unrestricted
权限提升漏洞分析信息收集错误配置实验室与实践
GitHubabraxas/ats-jsonrpc-unrestricted

ats-jsonrpc-unrestricted

Apache Traffic Server 10.2.0 - 高危 - 本地 - 权限残留 - JSON-RPC unix socket 无限制模式 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 socket 默认将 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 仍被拒绝。

ID暂无 CVE
类别权限残留(侦察)
可达范围本地(ATS 主机上的非特权 uid)
CWECWE-276、CWE-284
CVSS高危: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。Socket 为 $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同一 socket侦察(实验验证): 入站/出站跟踪器表(无负载时为空)。
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。见证记录未变。
排空 / 清除缓存 / 存储离线受限方法可用性:已关闭,对外部 uid(源码)。

实验验证 vs 推断: 0777 socket、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未授权;见证记录未改变
TCP / HTTP JSON-RPC不存在;仅有 HTTP 8080 / 18080
通过 RPC 加载插件 .soSO_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

Loopback 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
下载工具