g0thamRabb1t/cve-2026-48282-coldfusion-rds-detection
GitHub: g0thamRabb1t/cve-2026-48282-coldfusion-rds-detection
该仓库在实验室环境中验证了 Adobe ColdFusion RDS 的 CVE-2026-48282 漏洞,并提供了详细的攻击证据重建、检测策略和 SOC 分诊指南。
Stars: 0 | Forks: 0
# CVE-2026-48282 — Adobe ColdFusion RDS 验证与检测
在 Adobe ColdFusion Remote Development Services (RDS) 中对 **CVE-2026-48282** 进行的实验室验证,重点关注技术证据、事件重建和防御性检测机会。
该仓库记录了一次受控测试,其中易受攻击的 RDS FILEIO 功能被用于将一个 CFM 文件写入 ColdFusion 应用程序目录。通过 HTTP 调用该文件导致 ColdFusion 启动系统 shell 并建立出站连接。产生的进程和网络活动使用 Linux `auditd`、`tcpdump`、Docker telemetry、ColdFusion 日志和 Windows Event ID 4688 进行了捕获。
## 报告
- [英文验证报告](reports/CVE-2026-48282_ColdFusion_RDS_detection_EN.pdf)
- [波兰语验证报告](reports/CVE-2026-48282_ColdFusion_RDS_detection_PL.pdf)
两份报告均包含完整的测试方法、证据摘录、时间线、进程链、网络指标、缓解指南、审计建议以及示例 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
```
不包含任何漏洞利用源码、payload 源码、CFM payload、原始 PCAP 或原始主机证据包。
## 测试环境
| 角色 | 系统 |
|---|---|
| 受害者主机 | Ubuntu 24.04.4 LTS,内核 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 bind mount 从 Ubuntu 主机路径 `/home/user/coldfusion-u9/app` 映射而来。
## 验证内容
测试在隔离且经授权的实验室环境中进行。验证涵盖以下顺序:
1. Adobe ColdFusion 2025 Update 9 部署在 Docker 中。
2. 为实验室测试启用 RDS,并将身份验证模式设置为 **No authentication needed**。
3. 使用 [参考资料](#references) 中列出的公开项目确认 RDS endpoint 可达,且测试的实例似乎存在漏洞。
4. 使用仅限实验室使用的上传器,通过 RDS FILEIO 操作将一个 CFM 文件提交至 `/app/connect.cfm`。
5. 该文件通过 `GET /connect.cfm` 被调用。
6. ColdFusion 通过 Java 进程执行路径启动了 `/bin/bash`。
7. shell 建立了到 Windows 工作站的出站 TCP 连接。
8. 执行了非破坏性的发现命令,以确认有效用户、操作系统和工作目录。
9. 来自攻击者和受害者系统的证据被关联到一个统一的 UTC 时间线中。
报告有意记录了证据和检测逻辑,但没有分发定制的上传器或 payload 实现。
## 确认结果
实验室测试确认:
- 在测试配置中,通过 RDS FILEIO endpoint 进行任意 CFM 文件写入;
- 在 HTTP 请求后,ColdFusion 执行了写入的 CFM 文件;
- 创建了以下进程链:
```
ColdFusion Java
└── jspawnhelper
└── /bin/bash -c ...
└── bash -i
├── whoami
├── uname
└── id
```
- 从 ColdFusion 容器到 Windows 主机的出站 shell 连接;
- 在 ColdFusion 服务用户上下文中执行,而非 root。
在容器内部,有效身份为:
```
uid=999(cfuser) gid=999(cfuser) groups=999(cfuser)
```
在 Ubuntu 主机上,UID 999 使用主机账户数据库解析为 `dnsmasq`,这解释了在主机级别的 `auditd` 记录和文件所有权输出中显示不同用户名的原因。
## 关键证据
### RDS 配置
测试使用的管理配置如下所示。**No authentication needed** 选项仅为了受控的实验室验证而启用。

### 初始漏洞检查
初步检查确认 RDS endpoint 可达,并通过路径遍历报告了任意文件读/写行为。

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

### 代码执行与服务账户上下文
生成的 shell 会话确认以 ColdFusion 服务账户身份执行。截图中显示的命令仅限于环境识别。

### Ubuntu bind mount 上的文件
该文件出现在 `/home/user/coldfusion-u9/app` 中,这是作为 `/app` 挂载到容器中的主机路径。

## 重建的时间线
完整的时间线可在两份 PDF 报告中找到。最重要的事件包括:
| UTC | 事件 |
|---|---|
| 20:55:17 | 管理员登录 CFADMIN |
| 20:55:32 | 启用 RDS 安全性并将身份验证设置为 `No authentication needed` |
| 21:13:22 | Linux 审计、数据包捕获和 Docker 收集器已启动 |
| 21:14:25 | 从 Windows 执行漏洞检查脚本 |
| 21:14:40.940 | `POST /CFIDE/main/ide.cfm?ACTION=FILEIO` 并带有针对 `/app/connect.cfm` 的 `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 | `ncat.exe -lv 4444` 在 Windows 上启动 |
| 21:15:00.726 | 到 `172.20.10.2:4444` 的出站连接成功 |
| 21:15:07–21:15:15 | `whoami`、`uname`、`id` 和 `pwd` 确认了执行上下文 |
| 21:15:20 | 会话已关闭 |
## 证据收集方法
### Linux 和 Docker
受害者主机收集了:
- 有效 UID 为 999 的 `execve`、`execveat` 和 `connect` 的 `auditd` 事件;
- 对 ColdFusion webroot 和日志目录的监控;
- 针对 HTTP 和回调端口的 `tcpdump` 流量;
- 周期性的进程和 socket 快照;
- Docker 容器元数据、日志、事件、进程列表和文件系统差异;
- ColdFusion 应用程序和管理日志;
- SHA-256 哈希值和元数据基线。
最终的 `auditd` 状态报告 `lost=0`,表明内核审计子系统在捕获的测试窗口期间没有报告丢弃的事件。
### Windows
攻击者工作站的收集被刻意限制为与报告相关的工件:
- 操作系统和网络详细信息;
- Event ID 4688 进程创建记录;
- 与 Python 和 Ncat 相关的进程;
- 相关的 TCP 连接数据;
- 实验室文件的哈希值;
- Microsoft Defender 状态和检测结果;
- 工具版本。
## 最重要的检测机会
### 1. RDS FILEIO 请求
监控 HTTP、反向代理、WAF 或网络 telemetry 以查找以下组合:
```
POST /CFIDE/main/ide.cfm?ACTION=FILEIO
User-Agent: Dreamweaver-RDS-SCM1.00
request body contains: WRITE
request body references: .cfm, .cfc, or .jsp
```
这种组合明显强于任何单一指标。
### 2. 文件写入随后执行
关联:
1. 对服务器可执行扩展名的 FILEIO `WRITE` 请求;
2. 随后对新写入资源的 `GET` 请求;
3. 在短时间窗口内 ColdFusion Java 或 `jspawnhelper` 的新子进程。
### 3. 可疑的 ColdFusion 子进程
高价值进程指标包括:
```
parent process: java or jspawnhelper
child process: bash, sh, dash, cmd.exe, powershell.exe, or pwsh
```
其他命令行指标包括 `/dev/tcp`、交互式 shell 标志、重定向操作符、编码命令以及意外使用 `cfexecute`。
### 4. 来自应用程序服务账户的出站连接
当 ColdFusion 启动的 shell 或解释器向工作站或不寻常的目标端口发起出站连接时触发警报。实验室事件使用的是 TCP 端口 4444,但生产环境的检测不应仅依赖于单一端口。
### 5. RDS 配置更改
监控 ColdFusion 管理日志中包含以下内容的消息:
```
enabled RDS security
RDS authentication type
No authentication needed
```
生产环境中的任何 RDS 配置更改都应进行审查,特别是当身份验证被削弱或服务可从其他网络访问时。
### 6. 应用程序目录文件监控
测试发现了一个重要的容器监控限制:`/app` 是一个 bind mount。`docker diff` 显示了 `/app`,但无法完整查看主机挂载目录内创建的单个文件。
因此,文件完整性监控 (FIM)、`auditd`、eBPF 或 EDR 覆盖范围应监控支持该挂载的**真实主机路径**,例如:
```
/home/user/coldfusion-u9/app
```
仅监控容器 overlay 或 `/opt/coldfusion/cfusion/wwwroot` 将无法捕获此测试的完整文件创建证据。
## SOC 分诊指南
当检测到 HTTP 指标时,SOC 应立即将其与以下各项进行关联:
- 源 IP 和 user agent;
- RDS 身份验证和暴露配置;
- FILEIO body 中包含的目标路径;
- 新建或修改的 `.cfm`、`.cfc`、`.jsp` 或归档文件;
- 创建后不久对同一文件的 HTTP 访问;
- ColdFusion Java 子进程;
- 来自服务账户的出站连接;
- 随后的发现命令,如 `whoami`、`id`、`uname`、`hostname`、`pwd`、`ip`、`ifconfig`、`netstat` 或 `ss`;
- 在初始进程执行后的持久化尝试、凭据访问或横向移动。
对 CFM 文件的单个 `GET` 请求本身是不够的。最强的警报结合了同一短时间窗口内的文件写入、文件访问、进程创建和网络连接 telemetry。
## 推荐的缓解措施
1. 应用 APSB26-68 中提到的 Adobe ColdFusion 安全更新。
2. 在不需要 RDS 时将其禁用。
3. 如果必须保持启用 RDS,请强制执行身份验证,并限制只有明确授权的管理系统才能访问。
4. 防止 RDS 和 CFIDE 管理 endpoint 暴露给不受信任的网络。
5. 监控并限制对 ColdFusion 可执行服务器端内容的目录的写入。
6. 在业务功能不需要的情况下,限制 ColdFusion 服务账户启动操作系统进程的能力。
7. 监控 Docker bind mount 背后的主机路径,而不仅仅是容器 overlay 文件系统。
8. 检查环境是否存在意外的 CFM/CFC/JSP 文件和 ColdFusion 启动的 shell。
## 范围和限制
- 验证是针对一个 ColdFusion 2025 Update 9 Docker 实例进行的。
- RDS 被特意配置为 **No authentication needed** 以进行受控测试。
- 观察到的影响是以 ColdFusion 服务账户身份执行代码;未观察到提权至 root 的情况。
- 结果确认了测试的路径和配置。这并不能证明每个部署、身份验证模式、反向代理或操作系统的行为都是相同的。
- 本仓库不分发原始漏洞利用代码、定制上传器和 CFM payload。
- 报告包含精选的证据摘录,而不是完整的原始日志,以保持材料的可读性并专注于检测。
## 参考资料
- [Adobe 安全公告 APSB26-68](https://helpx.adobe.com/security/products/coldfusion/apsb26-68.html)
- [NVD — CVE-2026-48282](https://nvd.nist.gov/vuln/detail/CVE-2026-48282)
- [CVE.org — CVE-2026-48282](https://www.cve.org/CVERecord?id=CVE-2026-48282)
- [用作初步验证参考的公开项目](https://github.com/imbas007/CVE-2026-48282-POC)
## 负责任使用声明
本材料仅供防御性安全研究、漏洞管理、检测工程、事件响应准备和授权测试使用。未经明确许可,请勿将其用于攻击系统。
标签:AMSI绕过, CISA项目, Maven, SOC检测, 威胁检测, 子域枚举, 安全报告, 库, 应急响应, 漏洞验证, 请求拦截