Adobe ColdFusion RDS中CVE-2026-48282的实验室验证,具有任意CFM文件写入、代码执行、auditd/PCAP证据、事件时间线重建和SOC检测建议。包含英文和波兰语报告。
针对 Adobe ColdFusion 远程开发服务(RDS)中 CVE-2026-48282 的实验室验证,重点关注技术证据、事件重建和防御性检测机会。
本仓库记录了一次受控测试,其中利用存在漏洞的 RDS FILEIO 功能向 ColdFusion 应用程序目录写入了一个 CFM 文件。通过 HTTP 调用该文件后,ColdFusion 启动了系统 Shell 并建立了出站连接。由此产生的进程和网络活动已通过 Linux auditd、tcpdump、Docker 遥测、ColdFusion 日志以及 Windows 事件 ID 4688 捕获。
[!IMPORTANT] 本仓库仅包含报告和截图。自定义的上传/载荷实现有意不包含在内,因为直接发布可重复利用的利用代码会增加不必要的攻击能力。本材料旨在用于漏洞验证、安全运营中心工程、检测开发以及授权研究。
两份报告均包含完整的测试方法、证据摘录、时间线、进程链、网络指标、缓解指南、审计建议以及示例 SIEM 逻辑。
.
├── README.md
├── SHA256SUMS.txt
├── reports/
│ ├── CVE-2026-48282_ColdFusion_RDS_detection_EN.pdf
│ └── CVE-2026-48282_ColdFusion_RDS_detection_PL.pdf
└── screenshots/
├── 01_rds_authentication_no_authentication.png
├── 02_vulnerability_check.png
├── 03_rds_file_write_validation.png
├── 04_reverse_shell_session.png
└── 05_connect_cfm_on_ubuntu_host.png
不包含利用源代码、载荷源代码、CFM 载荷、原始 PCAP 或原始主机证据包。
| 角色 | 系统 |
|---|---|
| 受害者主机 | Ubuntu 24.04.4 LTS, kernel 6.17.0-35-generic, Docker Engine 29.5.3 |
| 目标应用程序 | Adobe ColdFusion 2025 Update 9, 镜像 adobecoldfusion/coldfusion2025:2025.0.9 |
| 容器 | coldfusion-2025-u9 |
| 攻击者工作站 | Microsoft Windows 11 Home 10.0.26200 |
| ColdFusion 服务 | http://172.20.10.3:8500 |
| Windows 测试地址 | 172.20.10.2 |
| 容器地址 | 172.19.0.2 |
| 测试日期 | 2026 年 7 月 7 日 |
ColdFusion 应用程序目录 /app 通过 Docker 绑定挂载从 Ubuntu 主机路径 /home/user/coldfusion-u9/app 映射。
测试在隔离且授权的实验室环境中执行。验证涵盖以下序列:
/app/connect.cfm 提交了一个 CFM 文件。GET /connect.cfm 调用该文件。/bin/bash。报告有意记录证据和检测逻辑,而不分发自定义上传器或载荷实现。
实验室测试确认:
ColdFusion Java
└── jspawnhelper
└── /bin/bash -c ...
└── bash -i
├── whoami
├── uname
└── id
在容器内部,有效身份为:
uid=999(cfuser) gid=999(cfuser) groups=999(cfuser)
在 Ubuntu 主机上,UID 999 通过主机账户数据库解析为 dnsmasq,这解释了主机级别 auditd 记录和文件所有权输出中显示的不同用户名。
测试中使用的管理配置如下所示。无需身份验证选项仅为受控实验室验证启用。

初始检查确认 RDS 端点可访问,并且通过路径遍历报告了任意文件读取/写入行为。

实验室上传器将本地 CFM 测试工件提交到 /app/connect.cfm。服务器返回了 RDS 响应 1:2:XX,写入的资源随后可通过 HTTP 访问。

结果 Shell 会话确认以 ColdFusion 服务账户身份执行。截图中显示的命令仅限于环境识别。

该文件出现在 /home/user/coldfusion-u9/app 中,即挂载到容器 /app 的主机路径。

完整时间线可在两份 PDF 报告中获取。最重要的事件如下:
| UTC | 事件 |
|---|---|
| 20:55:17 | 管理员登录 CFADMIN |
| 20:55:32 | 启用 RDS 安全性并将身份验证设置为 无需身份验证 |
| 21:13:22 | 启动 Linux 审计、数据包捕获和 Docker 收集器 |
| 21:14:25 | 从 Windows 执行漏洞检查脚本 |
| 21:14:40.940 | 对 /app/connect.cfm 执行 POST /CFIDE/main/ide.cfm?ACTION=FILEIO 的 WRITE 操作 |
| 21:14:40.944 | RDS 返回 1:2:XX |
| 21:14:40.950 | 浏览器请求 /connect.cfm |
| 21:14:41.321 | ColdFusion Java 启动 jspawnhelper |
| 21:14:41.324 | ColdFusion 启动 /bin/bash |
| 21:14:56 | 在 Windows 上启动 ncat.exe -lv 4444 |
| 21:15:00.726 | 到 172.20.10.2:4444 的出站连接成功 |
| 21:15:07–21:15:15 | whoami、uname、id 和 pwd 确认执行上下文 |
| 21:15:20 | 会话关闭 |
受害者主机收集了:
auditd 记录 execve、execveat 和 connect 事件;tcpdump 流量;最终 auditd 状态报告 lost=0,表明内核审计子系统在捕获的测试窗口期间未报告丢弃事件。
攻击者工作站的收集有意限于与报告相关的工件:
监控 HTTP、反向代理、WAF 或网络遥测中以下组合:
POST /CFIDE/main/ide.cfm?ACTION=FILEIO
User-Agent: Dreamweaver-RDS-SCM1.00
请求体包含: WRITE
请求体引用: .cfm、.cfc 或 .jsp
该组合比任何单个指示符都要强得多。
关联以下内容:
WRITE 请求;GET 请求;jspawnhelper 的新子进程。高价值进程指示符包括:
父进程: java 或 jspawnhelper
子进程: bash、sh、dash、cmd.exe、powershell.exe 或 pwsh
其他命令行指示符包括 /dev/tcp、交互式 Shell 标志、重定向操作符、编码命令以及 cfexecute 的意外使用。
当 ColdFusion 启动的 Shell 或解释器发起出站连接到工作站或异常目标端口时发出警报。实验室事件使用了 TCP 端口 4444,但生产检测不应依赖于单个端口。
监控 ColdFusion 管理日志中包含以下内容的消息:
enabled RDS security
RDS authentication type
No authentication needed
生产中任何 RDS 配置更改都应审查,特别是当身份验证被削弱或服务变得可从其他网络访问时。
测试发现了一个重要的容器监控限制:/app 是一个绑定挂载。docker diff 显示了 /app,但未提供对主机挂载目录内创建的各文件的完全可见性。
因此,文件完整性监控、auditd、eBPF 或 EDR 覆盖应监控挂载背后的真实主机路径,例如:
/home/user/coldfusion-u9/app
仅监控容器 overlay 或 /opt/coldfusion/cfusion/wwwroot 将无法捕获本次测试中完整的文件创建证据。
当检测到 HTTP 指示符时,SOC 应立即将其与以下内容关联:
.cfm、.cfc、.jsp 或存档文件;whoami、id、uname、hostname、pwd、ip、ifconfig、netstat 或 ss;单独的 GET 请求到 CFM 文件并不足够。最强的告警应结合同一短时间窗口内的文件写入、文件访问、进程创建和网络连接遥测。
本材料仅供防御性安全研究、漏洞管理、检测工程、事件响应准备和授权测试使用。未经明确许可,不得将其用于任何系统。