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

CVE-2026-42601 ArchiveBox远程代码执行漏洞

披露日期: 2026-05-09

漏洞信息

漏洞编号
CVE-2026-42601
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ArchiveBox

相关标签

RCEArchiveBox参数注入CVSS:9.80day

漏洞概述

ArchiveBox是一款流行的开源自托管网页归档解决方案。在其0.8.6rc0及更早的版本中,存在一个严重的远程代码执行漏洞。问题的根源在于`/add/`端点(位于`core/views.py`的AddView)在处理用户输入时存在缺陷。该接口允许用户提交一个名为`config`的JSON字段,但系统并未对该字段内容进行必要的安全校验。此配置随后被直接合并到爬虫的配置字典中,并在执行归档插件时被导出为环境变量。攻击者可以通过构造恶意的JSON数据,注入任意工具参数,进而诱使底层系统执行恶意代码。由于目前没有可用的补丁,该漏洞对部署了旧版本ArchiveBox的服务器构成了极大的威胁。

技术细节

该漏洞的利用原理涉及到了不安全的配置处理和环境变量注入。具体来说,ArchiveBox的`AddView`在处理归档请求时,会解析用户POST数据中的`config`参数并将其合并到全局配置中,期间未进行任何过滤或清洗。在后续的归档流程中,系统会启动外部插件(如`wget`、`youtube-dl`等)来抓取内容。此时,被污染的配置会被以环境变量的形式传递给这些子进程。攻击者利用这一点,可以构造特定的参数值,这些值在底层工具解析环境变量或构建命令行参数时,可能触发命令注入或参数注入攻击。由于CVSS向量显示无需认证(PR:N)且无用户交互(UI:N),攻击者可轻易通过网络(AV:N)发送恶意请求,导致服务器机密性、完整性和可用性全面受损(C:H/I:H/A:H)。

攻击链分析

STEP 1
步骤1:侦察
攻击者识别出目标运行的是ArchiveBox 0.8.6rc0或更早版本,并定位到开放的`/add/`API端点。
STEP 2
步骤2:构造载荷
攻击者编写恶意的JSON数据,在`config`字段中注入特定的参数,这些参数旨在通过环境变量传递给底层工具时执行命令。
STEP 3
步骤3:发送请求
攻击者向目标服务器的`/add/`端点发送包含恶意`config`的POST请求,无需进行身份认证。
STEP 4
步骤4:注入执行
服务器接收请求,将恶意配置合并并在启动归档插件时导出为环境变量,导致底层工具执行任意代码。
STEP 5
步骤5:获取权限
攻击者成功在服务器上执行任意系统命令,获得服务器控制权限,可进行进一步的数据窃取或破坏。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target URL (Replace with actual target) target_url = "http://localhost:8000/add/" # The vulnerability lies in the 'config' JSON field. # It is merged into the crawl config and exported as env vars. # We inject a payload that attempts to execute a command. # Note: The specific key depends on which plugin accepts env vars that translate to command args. # This example assumes a generic injection scenario. payload = { "url": "http://example.com", "config": { # Hypothetical malicious argument injection # If a plugin uses this env var to build a command, we can break out "INJECT_PAYLOAD": "; touch /tmp/pwned; #" } } headers = { "Content-Type": "application/json" } try: response = requests.post(target_url, data=json.dumps(payload), headers=headers) print(f"Status Code: {response.status_code}") print("Response:") print(response.text) except Exception as e: print(f"An error occurred: {e}")

影响范围

ArchiveBox <= 0.8.6rc0

防御指南

临时缓解措施
由于目前没有官方补丁,建议采取网络隔离措施,通过反向代理或防火墙严格限制对ArchiveBox服务的访问权限,特别是禁止公网直接访问`/add/`接口。如果可能,建议暂时停止服务直到修复方案发布。对于必须运行的服务,应实施严格的入站/出站流量监控,以检测可能的利用行为。

参考链接

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