Лабораторная валидация CVE-2026-48282 в Adobe ColdFusion RDS с произвольной записью файлов CFM, выполнением кода, доказательствами auditd/PCAP, реконструкцией временной шкалы событий и рекомендациями по обнаружению для SOC. Включает отчеты на английском и польском языках.
Лабораторная проверка CVE-2026-48282 в службах удаленной разработки (RDS) Adobe ColdFusion, ориентированная на технические доказательства, реконструкцию событий и возможности защитного обнаружения.
В репозитории задокументирован контролируемый тест, в котором уязвимая функциональность RDS FILEIO использовалась для записи CFM-файла в каталог приложения ColdFusion. Вызов файла через HTTP привел к запуску системной оболочки ColdFusion и установке исходящего соединения. Возникающая активность процессов и сети была зафиксирована с помощью Linux auditd, tcpdump, телеметрии Docker, журналов ColdFusion и кода события Windows 4688.
[!IMPORTANT] Данный репозиторий содержит только отчеты и скриншоты. Пользовательская реализация загрузки файлов/полезной нагрузки намеренно не включена, поскольку прямая публикация многократно используемого эксплойтного кода добавила бы излишнюю атакующую возможность. Материал предназначен для проверки уязвимости, инженерии SOC, разработки средств обнаружения и авторизованных исследований.
Оба отчета содержат полную методологию тестирования, выдержки из доказательств, временную шкалу, цепочку процессов, сетевые индикаторы, рекомендации по снижению риска, рекомендации по аудиту и пример логики 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, ядро 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 |
| Дата тестирования | 7 июля 2026 г. |
Каталог приложения ColdFusion /app был смонтирован из пути хоста Ubuntu /home/user/coldfusion-u9/app как Docker bind mount.
Тест проводился в изолированной и авторизованной лабораторной среде. Проверка охватывала следующую последовательность:
/app/connect.cfm.GET /connect.cfm./bin/bash через путь выполнения процесса Java.Отчеты намеренно документируют доказательства и логику обнаружения без распространения пользовательского загрузчика или реализации полезной нагрузки.
Лабораторный тест подтвердил:
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.

Полученный сеанс оболочки подтвердил выполнение от имени учетной записи службы 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 | POST /CFIDE/main/ide.cfm?ACTION=FILEIO с операцией WRITE в /app/connect.cfm |
| 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 | Сеанс закрыт |
Хост-жертва собирал:
auditd для execve, execveat и connect, где действующий UID был 999;tcpdump для HTTP и порта обратного вызова;Конечный статус 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, флаги интерактивной оболочки, операторы перенаправления, закодированные команды и неожиданное использование cfexecute.
Срабатывайте тревогу, когда оболочка или интерпретатор, запущенные ColdFusion, инициируют исходящее соединение с рабочей станцией или необычным портом назначения. В лабораторном событии использовался TCP-порт 4444, но производственное обнаружение не должно зависеть от одного порта.
Отслеживайте журналы администрирования ColdFusion на наличие сообщений, содержащих:
включена безопасность RDS
тип аутентификации RDS
Аутентификация не требуется
Любое изменение конфигурации RDS в производственной среде должно быть проверено, особенно если аутентификация ослабляется или служба становится доступной из дополнительных сетей.
Тест выявил важное ограничение мониторинга контейнеров: /app был bind mount. docker diff показывал /app, но не обеспечивал полную видимость отдельных файлов, созданных внутри смонтированного хостового каталога.
Поэтому мониторинг целостности файлов, auditd, eBPF или EDR должны отслеживать реальный путь хоста, поддерживающий монтирование, например:
/home/user/coldfusion-u9/app
Мониторинг только наложения контейнера или /opt/coldfusion/cfusion/wwwroot не позволил бы зафиксировать полные доказательства создания файлов в этом тесте.
При обнаружении HTTP-индикатора SOC должен немедленно скоррелировать его с:
.cfm, .cfc, .jsp или архивов;whoami, id, uname, hostname, pwd, ip, ifconfig, netstat или ss;Один GET-запрос к CFM-файлу сам по себе недостаточен. Самый сильный сигнал тревоги объединяет телеметрию записи файла, доступа к файлу, создания процесса и сетевого соединения в одном коротком временном окне.
Данный материал предоставлен для защитных исследований безопасности, управления уязвимостями, разработки средств обнаружения, подготовки к реагированию на инциденты и авторизованного тестирования. Не используйте его против систем без явного разрешения.