
Validazione in laboratorio di CVE-2026-48282 in Adobe ColdFusion RDS, che copre scrittura arbitraria di file CFM, esecuzione di codice come utente del servizio ColdFusion, prove da auditd e PCAP, ricostruzione della timeline degli eventi e raccomandazioni di rilevamento SOC. Include report in polacco e inglese.
Validazione di laboratorio di CVE-2026-48282 in Adobe ColdFusion Remote Development Services (RDS), incentrata su prove tecniche, ricostruzione degli eventi e opportunità di rilevamento difensivo.
Il repository documenta un test controllato in cui la funzionalità RDS FILEIO vulnerabile è stata utilizzata per scrivere un file CFM in una directory applicativa di ColdFusion. L'invocazione del file via HTTP ha indotto ColdFusion ad avviare una shell di sistema e a stabilire una connessione in uscita. L'attività di processo e di rete risultante è stata catturata utilizzando Linux auditd, tcpdump, la telemetria Docker, i log di ColdFusion e l'Event ID 4688 di Windows.
[!IMPORTANT] Questo repository contiene esclusivamente report e schermate. L'implementazione personalizzata di caricamento file/payload è volutamente non inclusa, poiché pubblicare codice di sfruttamento direttamente riutilizzabile aggiungerebbe capacità offensive non necessarie. Il materiale è destinato alla validazione delle vulnerabilità, all'ingegneria SOC, allo sviluppo di rilevamenti e alla ricerca autorizzata.
Entrambi i report contengono la metodologia di test completa, estratti delle prove, la cronologia, la catena dei processi, gli indicatori di rete, le indicazioni di mitigazione, le raccomandazioni di audit ed esempi di logica 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
Non sono inclusi codice sorgente di exploit, sorgente del payload, payload CFM, PCAP grezzi o pacchetti grezzi di prove raccolte sull'host.
La directory applicativa di ColdFusion /app è stata mappata dal percorso host Ubuntu /home/user/coldfusion-u9/app come bind mount Docker.
Il test è stato eseguito in un ambiente di laboratorio isolato e autorizzato. La validazione ha riguardato la seguente sequenza:
/app/connect.cfm.GET /connect.cfm./bin/bash tramite il percorso di esecuzione dei processi Java.I report documentano intenzionalmente le prove e la logica di rilevamento senza distribuire l'uploader personalizzato o l'implementazione del payload.
Il test di laboratorio ha confermato:
ColdFusion Java
└── jspawnhelper
└── /bin/bash -c ...
└── bash -i
├── whoami
├── uname
└── id
All'interno del container, l'identità effettiva era:
uid=999(cfuser) gid=999(cfuser) groups=999(cfuser)
Sull'host Ubuntu, l'UID 999 è stato risolto tramite il database degli account dell'host come dnsmasq, il che spiega il diverso nome utente mostrato nei record auditd a livello di host e nell'output della proprietà dei file.
La configurazione amministrativa utilizzata per il test è mostrata di seguito. L'opzione No authentication needed è stata abilitata solo per la validazione controllata di laboratorio.

La verifica iniziale ha confermato che l'endpoint RDS era raggiungibile e ha segnalato un comportamento di lettura/scrittura arbitraria dei file tramite path traversal.

L'uploader di laboratorio ha inviato l'artefatto di test CFM locale a /app/connect.cfm. Il server ha restituito la risposta RDS 1:2:XX e la risorsa scritta è stata successivamente raggiungibile via HTTP.

La sessione shell risultante ha confermato l'esecuzione come account di servizio di ColdFusion. I comandi mostrati nella schermata erano limitati all'identificazione dell'ambiente.

Il file è comparso in /home/user/coldfusion-u9/app, il percorso host montato nel container come /app.

La cronologia completa è disponibile in entrambi i report PDF. Gli eventi più importanti sono stati:
L'host vittima ha raccolto:
auditd per execve, execveat e connect in cui l'UID effettivo era 999;tcpdump per le porte HTTP e di callback;Lo stato finale di auditd riportava lost=0, a indicare che il sottosistema di audit del kernel non ha segnalato eventi persi durante la finestra di test catturata.
La raccolta sulla workstation attaccante è stata volutamente limitata agli artefatti rilevanti per il report:
Monitorare la telemetria HTTP, del reverse proxy, WAF o di rete per la seguente combinazione:
POST /CFIDE/main/ide.cfm?ACTION=FILEIO
User-Agent: Dreamweaver-RDS-SCM1.00
request body contains: WRITE
request body references: .cfm, .cfc, or .jsp
La combinazione è significativamente più forte di qualsiasi singolo indicatore da solo.
Correlare:
WRITE verso un'estensione eseguibile dal server;GET alla risorsa appena scritta;jspawnhelper entro una breve finestra temporale.Gli indicatori di processo ad alto valore includono:
parent process: java or jspawnhelper
child process: bash, sh, dash, cmd.exe, powershell.exe, or pwsh
Ulteriori indicatori della riga di comando includono /dev/tcp, flag di shell interattiva, operatori di reindirizzamento, comandi codificati e uso inatteso di cfexecute.
Generare un alert quando una shell o un interprete avviato da ColdFusion avvia una connessione in uscita verso una workstation o una porta di destinazione insolita. L'evento di laboratorio ha utilizzato la porta TCP 4444, ma il rilevamento in produzione non dovrebbe dipendere da un'unica porta.
Monitorare i log amministrativi di ColdFusion per messaggi contenenti:
enabled RDS security
RDS authentication type
No authentication needed
Qualsiasi modifica alla configurazione RDS in produzione dovrebbe essere esaminata, in particolare quando l'autenticazione viene indebolita o il servizio diventa raggiungibile da reti aggiuntive.
Il test ha identificato un'importante limitazione del monitoraggio dei container: /app era un bind mount. docker diff mostrava /app ma non forniva visibilità completa sui singoli file creati all'interno della directory montata dall'host.
Il monitoraggio dell'integrità dei file, auditd, eBPF o la copertura EDR dovrebbero quindi monitorare il percorso host reale alla base del mount, ad esempio:
/home/user/coldfusion-u9/app
Il monitoraggio del solo overlay del container o di /opt/coldfusion/cfusion/wwwroot non avrebbe catturato l'evidenza completa della creazione dei file per questo test.
Quando viene rilevato l'indicatore HTTP, il SOC dovrebbe immediatamente correlarlo con:
.cfm, .cfc, .jsp o archivi nuovi o modificati;whoami, id, uname, hostname, pwd, ip, ifconfig, netstat o ss;Una singola richiesta GET a un file CFM non è sufficiente da sola. L'alert più efficace combina la telemetria di scrittura dei file, accesso ai file, creazione di processi e connessioni di rete all'interno della stessa breve finestra temporale.
Questo materiale è fornito per la ricerca di sicurezza difensiva, la gestione delle vulnerabilità, l'ingegneria dei rilevamenti, la preparazione alla risposta agli incidenti e i test autorizzati. Non utilizzarlo contro sistemi senza autorizzazione esplicita.
| Ruolo | Sistema |
|---|
| Host vittima | Ubuntu 24.04.4 LTS, kernel 6.17.0-35-generic, Docker Engine 29.5.3 |
| Applicazione target | Adobe ColdFusion 2025 Update 9, immagine adobecoldfusion/coldfusion2025:2025.0.9 |
| Container | coldfusion-2025-u9 |
| Workstation attaccante | Microsoft Windows 11 Home 10.0.26200 |
| Servizio ColdFusion | http://172.20.10.3:8500 |
| Indirizzo di test Windows | 172.20.10.2 |
| Indirizzo del container | 172.19.0.2 |
| Data del test | 7 luglio 2026 |
| UTC | Evento |
|---|
| 20:55:17 | Accesso amministratore a CFADMIN |
| 20:55:32 | Sicurezza RDS abilitata e autenticazione impostata su No authentication needed |
| 21:13:22 | Avviati l'auditing Linux, la cattura dei pacchetti e i collector Docker |
| 21:14:25 | Script di verifica della vulnerabilità eseguito da Windows |
| 21:14:40.940 | POST /CFIDE/main/ide.cfm?ACTION=FILEIO con un'operazione WRITE su /app/connect.cfm |
| 21:14:40.944 | RDS ha restituito 1:2:XX |
| 21:14:40.950 | Il browser ha richiesto /connect.cfm |
| 21:14:41.321 | Il processo Java di ColdFusion ha avviato jspawnhelper |
| 21:14:41.324 | ColdFusion ha avviato /bin/bash |
| 21:14:56 | ncat.exe -lv 4444 avviato su Windows |
| 21:15:00.726 | Connessione in uscita a 172.20.10.2:4444 riuscita |
| 21:15:07–21:15:15 | whoami, uname, id e pwd hanno confermato il contesto di esecuzione |
| 21:15:20 | Sessione chiusa |