Validation en laboratoire de CVE-2026-48282 dans Adobe ColdFusion RDS avec écriture de fichier CFM arbitraire, exécution de code, preuves auditd/PCAP, reconstruction de la chronologie des événements et recommandations de détection SOC. Inclut des rapports en anglais et en polonais.
Validation en laboratoire de CVE-2026-48282 dans les services de développement à distance (RDS) d'Adobe ColdFusion, axée sur les preuves techniques, la reconstruction d'événements et les opportunités de détection défensive.
Ce dépôt documente un test contrôlé dans lequel la fonctionnalité vulnérable RDS FILEIO a été utilisée pour écrire un fichier CFM dans un répertoire d'application ColdFusion. L'invocation du fichier via HTTP a provoqué le démarrage d'un shell système par ColdFusion et l'établissement d'une connexion sortante. L'activité résultante des processus et du réseau a été capturée à l'aide de Linux auditd, tcpdump, de la télémétrie Docker, des journaux ColdFusion et de l'ID d'événement Windows 4688.
[!IMPORTANT] Ce dépôt contient uniquement des rapports et des captures d'écran. L'implémentation personnalisée de téléchargement de fichier / payload est intentionnellement non incluse, car publier du code d'exploitation directement réutilisable ajouterait une capacité offensive inutile. Le matériel est destiné à la validation de vulnérabilités, à l'ingénierie SOC, au développement de détection et à la recherche autorisée.
Les deux rapports contiennent la méthodologie de test complète, des extraits de preuves, une chronologie, la chaîne de processus, des indicateurs réseau, des conseils d'atténuation, des recommandations d'audit et un exemple de logique 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
Aucun code source d'exploitation, source de payload, payload CFM, PCAP brut ou paquet de preuves brutes de l'hôte n'est inclus.
| Rôle | Système |
|---|---|
| Hôte victime | Ubuntu 24.04.4 LTS, kernel 6.17.0-35-generic, Docker Engine 29.5.3 |
| Application cible | Adobe ColdFusion 2025 Update 9, image adobecoldfusion/coldfusion2025:2025.0.9 |
| Conteneur | coldfusion-2025-u9 |
| Poste de travail attaquant | Microsoft Windows 11 Home 10.0.26200 |
| Service ColdFusion | http://172.20.10.3:8500 |
| Adresse de test Windows | 172.20.10.2 |
| Adresse du conteneur | 172.19.0.2 |
| Date du test | 7 juillet 2026 |
Le répertoire d'application ColdFusion /app a été mappé à partir du chemin hôte Ubuntu /home/user/coldfusion-u9/app comme montage de liaison Docker.
Le test a été effectué dans un environnement de laboratoire isolé et autorisé. La validation a couvert la séquence suivante :
/app/connect.cfm.GET /connect.cfm./bin/bash via le chemin d'exécution du processus Java.Les rapports documentent intentionnellement les preuves et la logique de détection sans distribuer le téléchargeur personnalisé ni l'implémentation du payload.
Le test en laboratoire a confirmé :
ColdFusion Java
└── jspawnhelper
└── /bin/bash -c ...
└── bash -i
├── whoami
├── uname
└── id
À l'intérieur du conteneur, l'identité effective était :
uid=999(cfuser) gid=999(cfuser) groups=999(cfuser)
Sur l'hôte Ubuntu, l'UID 999 a été résolu comme dnsmasq à l'aide de la base de données des comptes hôte, ce qui explique le nom d'utilisateur différent affiché dans les enregistrements auditd au niveau de l'hôte et dans la sortie de propriété des fichiers.
La configuration administrative utilisée pour le test est présentée ci-dessous. L'option Aucune authentification requise a été activée uniquement pour la validation en laboratoire contrôlé.

La vérification initiale a confirmé que le point de terminaison RDS était accessible et a signalé un comportement de lecture/écriture arbitraire de fichiers via un parcours de chemin.

Le téléchargeur de laboratoire a soumis l'artefact de test CFM local à /app/connect.cfm. Le serveur a renvoyé la réponse RDS 1:2:XX, et la ressource écrite était ensuite accessible via HTTP.

La session shell résultante a confirmé l'exécution en tant que compte de service ColdFusion. Les commandes affichées dans la capture d'écran étaient limitées à l'identification de l'environnement.

Le fichier est apparu dans /home/user/coldfusion-u9/app, le chemin hôte monté dans le conteneur comme /app.

La chronologie complète est disponible dans les deux rapports PDF. Les événements les plus importants étaient :
| UTC | Événement |
|---|---|
| 20:55:17 | Connexion administrateur à CFADMIN |
| 20:55:32 | Sécurité RDS activée et authentification définie sur Aucune authentification requise |
| 21:13:22 | Audit Linux, capture de paquets et collecteurs Docker démarrés |
| 21:14:25 | Script de vérification de vulnérabilité exécuté depuis Windows |
| 21:14:40.940 | POST /CFIDE/main/ide.cfm?ACTION=FILEIO avec une opération WRITE vers /app/connect.cfm |
| 21:14:40.944 | RDS a renvoyé 1:2:XX |
| 21:14:40.950 | Navigateur a demandé /connect.cfm |
| 21:14:41.321 | ColdFusion Java a lancé jspawnhelper |
| 21:14:41.324 | ColdFusion a lancé /bin/bash |
| 21:14:56 | ncat.exe -lv 4444 démarré sur Windows |
| 21:15:00.726 | Connexion sortante vers 172.20.10.2:4444 réussie |
| 21:15:07–21:15:15 | whoami, uname, id et pwd ont confirmé le contexte d'exécution |
| 21:15:20 | Session fermée |
L'hôte victime a collecté :
auditd events for execve, execveat, and connect where the effective UID was 999;tcpdump traffic for the HTTP and callback ports;Le statut final auditd a rapporté lost=0, indiquant que le sous-système d'audit du noyau n'a pas signalé d'événements perdus pendant la fenêtre de test capturée.
La collecte sur le poste de travail attaquant a été intentionnellement limitée aux artefacts pertinents pour le rapport :
Surveillez la télémétrie HTTP, proxy inverse, WAF ou réseau pour la combinaison suivante :
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 combinaison est significativement plus forte que n'importe quel indicateur unique pris individuellement.
Corrélez :
WRITE vers une extension exécutable par le serveur ;GET ultérieure vers la ressource nouvellement écrite ;jspawnhelper dans un court intervalle de temps.Les indicateurs de processus de grande valeur incluent :
parent process: java or jspawnhelper
child process: bash, sh, dash, cmd.exe, powershell.exe, or pwsh
Les indicateurs supplémentaires de ligne de commande incluent /dev/tcp, les indicateurs de shell interactif, les opérateurs de redirection, les commandes encodées et l'utilisation inattendue de cfexecute.
Déclenchez une alerte lorsqu'un shell ou un interpréteur lancé par ColdFusion initie une connexion sortante vers un poste de travail ou un port de destination inhabituel. L'événement de laboratoire a utilisé le port TCP 4444, mais la détection en production ne doit pas dépendre d'un seul port.
Surveillez les journaux d'administration ColdFusion pour les messages contenant :
enabled RDS security
RDS authentication type
No authentication needed
Toute modification de la configuration RDS en production doit être examinée, en particulier lorsque l'authentification est affaiblie ou que le service devient accessible depuis des réseaux supplémentaires.
Le test a identifié une limitation importante de la surveillance des conteneurs : /app était un montage de liaison. docker diff a montré /app mais n'a pas fourni une visibilité complète sur les fichiers individuels créés à l'intérieur du répertoire monté sur l'hôte.
La surveillance de l'intégrité des fichiers, auditd, eBPF ou la couverture EDR doivent donc surveiller le chemin réel de l'hôte soutenant le montage, par exemple :
/home/user/coldfusion-u9/app
Surveiller uniquement la superposition du conteneur ou /opt/coldfusion/cfusion/wwwroot n'aurait pas capturé la preuve complète de création de fichier pour ce test.
Lorsque l'indicateur HTTP est détecté, le SOC doit immédiatement le corréler avec :
.cfm, .cfc, .jsp ou archives nouveaux ou modifiés ;whoami, id, uname, hostname, pwd, ip, ifconfig, netstat ou ss ;Une seule requête GET vers un fichier CFM n'est pas suffisante à elle seule. L'alerte la plus forte combine la télémétrie d'écriture de fichier, d'accès au fichier, de création de processus et de connexion réseau dans la même courte fenêtre temporelle.
Ce matériel est fourni pour la recherche en sécurité défensive, la gestion des vulnérabilités, l'ingénierie de détection, la préparation aux incidents de réponse et les tests autorisés. Ne l'utilisez pas contre des systèmes sans autorisation explicite.