Validação laboratorial de CVE-2026-48282 no Adobe ColdFusion RDS com escrita arbitrária de arquivo CFM, execução de código, evidências auditd/PCAP, reconstrução de linha do tempo de eventos e recomendações de detecção SOC. Inclui relatórios em inglês e polonês.
Validação em laboratório do CVE-2026-48282 no Adobe ColdFusion Remote Development Services (RDS), focada em evidências técnicas, reconstrução de eventos e oportunidades de detecção defensiva.
O repositório documenta um teste controlado no qual a funcionalidade vulnerável RDS FILEIO foi usada para escrever um arquivo CFM em um diretório de aplicação ColdFusion. A invocação do arquivo via HTTP fez com que o ColdFusion iniciasse um shell do sistema e estabelecesse uma conexão de saída. A atividade de processo e rede resultante foi capturada usando Linux auditd, tcpdump, telemetria Docker, logs do ColdFusion e Windows Event ID 4688.
[!IMPORTANT] Este repositório contém apenas relatórios e capturas de tela. A implementação personalizada de upload/payload é intencionalmente não incluída, porque publicar código de exploração diretamente reutilizável adicionaria capacidade ofensiva desnecessária. O material é destinado à validação de vulnerabilidades, engenharia de SOC, desenvolvimento de detecção e pesquisa autorizada.
Ambos os relatórios contêm a metodologia completa do teste, trechos de evidências, linha do tempo, cadeia de processos, indicadores de rede, orientações de mitigação, recomendações de auditoria e exemplo de lógica 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
Nenhum código-fonte de exploração, fonte de payload, payload CFM, PCAP bruto ou pacote de evidências brutas do host está incluído.
| Função | Sistema |
|---|---|
| Host vítima | Ubuntu 24.04.4 LTS, kernel 6.17.0-35-generic, Docker Engine 29.5.3 |
| Aplicação alvo | Adobe ColdFusion 2025 Update 9, imagem adobecoldfusion/coldfusion2025:2025.0.9 |
| Contêiner | coldfusion-2025-u9 |
| Estação de trabalho atacante | Microsoft Windows 11 Home 10.0.26200 |
| Serviço ColdFusion | http://172.20.10.3:8500 |
| Endereço de teste Windows | 172.20.10.2 |
| Endereço do contêiner | 172.19.0.2 |
| Data do teste | 7 de julho de 2026 |
O diretório da aplicação ColdFusion /app foi mapeado a partir do caminho do host Ubuntu /home/user/coldfusion-u9/app como um bind mount Docker.
O teste foi realizado em um ambiente de laboratório isolado e autorizado. A validação cobriu a seguinte sequência:
/app/connect.cfm.GET /connect.cfm./bin/bash através do caminho de execução de processo Java.Os relatórios documentam intencionalmente as evidências e a lógica de detecção sem distribuir o uploader personalizado ou a implementação do payload.
O teste de laboratório confirmou:
ColdFusion Java
└── jspawnhelper
└── /bin/bash -c ...
└── bash -i
├── whoami
├── uname
└── id
Dentro do contêiner, a identidade efetiva era:
uid=999(cfuser) gid=999(cfuser) groups=999(cfuser)
No host Ubuntu, o UID 999 foi resolvido usando o banco de dados de contas do host como dnsmasq, o que explica o nome de usuário diferente mostrado nos registros auditd de nível de host e na saída de propriedade de arquivo.
A configuração administrativa usada para o teste é mostrada abaixo. A opção Nenhuma autenticação necessária foi habilitada apenas para a validação controlada em laboratório.

A verificação inicial confirmou que o endpoint RDS estava acessível e relatou comportamento arbitrário de leitura/gravação de arquivos através de path traversal.

O uploader de laboratório enviou o artefato de teste CFM local para /app/connect.cfm. O servidor retornou a resposta RDS 1:2:XX, e o recurso gravado ficou subsequentemente acessível via HTTP.

A sessão shell resultante confirmou a execução como a conta de serviço do ColdFusion. Os comandos mostrados na captura de tela foram limitados à identificação do ambiente.

O arquivo apareceu em /home/user/coldfusion-u9/app, o caminho do host montado no contêiner como /app.

A linha do tempo completa está disponível em ambos os relatórios PDF. Os eventos mais importantes foram:
| UTC | Evento |
|---|---|
| 20:55:17 | Login do administrador no CFADMIN |
| 20:55:32 | Segurança RDS habilitada e autenticação definida como Nenhuma autenticação necessária |
| 21:13:22 | Auditoria Linux, captura de pacotes e coletores Docker iniciados |
| 21:14:25 | Script de verificação de vulnerabilidade executado do Windows |
| 21:14:40.940 | POST /CFIDE/main/ide.cfm?ACTION=FILEIO com uma operação WRITE para /app/connect.cfm |
| 21:14:40.944 | RDS retornou 1:2:XX |
| 21:14:40.950 | Navegador solicitou /connect.cfm |
| 21:14:41.321 | ColdFusion Java iniciou jspawnhelper |
| 21:14:41.324 | ColdFusion iniciou /bin/bash |
| 21:14:56 | ncat.exe -lv 4444 iniciado no Windows |
| 21:15:00.726 | Conexão de saída para 172.20.10.2:4444 bem-sucedida |
| 21:15:07–21:15:15 | whoami, uname, id e pwd confirmaram o contexto de execução |
| 21:15:20 | Sessão encerrada |
O host vítima coletou:
auditd para execve, execveat e connect onde o UID efetivo era 999;tcpdump para as portas HTTP e de callback;O status final do auditd reportou lost=0, indicando que o subsistema de auditoria do kernel não reportou eventos perdidos durante a janela de teste capturada.
A coleta da estação de trabalho atacante foi intencionalmente limitada a artefatos relevantes ao relatório:
Monitore a telemetria HTTP, proxy reverso, WAF ou rede para a seguinte combinação:
POST /CFIDE/main/ide.cfm?ACTION=FILEIO
User-Agent: Dreamweaver-RDS-SCM1.00
request body contains: WRITE
request body references: .cfm, .cfc, or .jsp
A combinação é significativamente mais forte do que qualquer indicador isolado por si só.
Correlacione:
WRITE para uma extensão executável pelo servidor;GET subsequente ao recurso recém-gravado;jspawnhelper dentro de uma pequena janela de tempo.Indicadores de processo de alto valor incluem:
parent process: java or jspawnhelper
child process: bash, sh, dash, cmd.exe, powershell.exe, or pwsh
Indicadores adicionais de linha de comando incluem /dev/tcp, flags de shell interativo, operadores de redirecionamento, comandos codificados e uso inesperado de cfexecute.
Alerta quando um shell ou interpretador lançado pelo ColdFusion inicia uma conexão de saída para uma estação de trabalho ou uma porta de destino incomum. O evento de laboratório usou a porta TCP 4444, mas a detecção em produção não deve depender de uma única porta.
Monitore logs administrativos do ColdFusion em busca de mensagens contendo:
enabled RDS security
RDS authentication type
No authentication needed
Qualquer alteração de configuração RDS em produção deve ser revisada, particularmente quando a autenticação é enfraquecida ou o serviço se torna acessível a partir de redes adicionais.
O teste identificou uma limitação importante no monitoramento de contêineres: /app era um bind mount. O docker diff mostrou /app mas não forneceu visibilidade completa sobre arquivos individuais criados dentro do diretório montado no host.
O monitoramento de integridade de arquivos, auditd, eBPF ou cobertura EDR devem, portanto, monitorar o caminho real do host que dá suporte ao mount, por exemplo:
/home/user/coldfusion-u9/app
Monitorar apenas a sobreposição do contêiner ou /opt/coldfusion/cfusion/wwwroot não teria capturado a evidência completa de criação de arquivos para este teste.
Quando o indicador HTTP é detectado, o SOC deve imediatamente correlacioná-lo com:
.cfm, .cfc, .jsp ou arquivos compactados;whoami, id, uname, hostname, pwd, ip, ifconfig, netstat ou ss;Uma única requisição GET a um arquivo CFM não é suficiente por si só. O alerta mais forte combina telemetria de gravação de arquivo, acesso a arquivo, criação de processo e conexão de rede dentro da mesma janela de tempo curta.
Este material é fornecido para pesquisa de segurança defensiva, gerenciamento de vulnerabilidades, engenharia de detecção, preparação para resposta a incidentes e testes autorizados. Não o utilize contra sistemas sem permissão explícita.