
CVE-2026-25860 POC git
Si vous souhaitez enchaîner cette XSS avec une RCE, vous pouvez lire :
OpenClinic GA <= v5.351.19 (12/05/2026) contient une vulnérabilité de XSS réfléchie dans le gestionnaire de téléchargement d'images DICOM qui permet à un attaquant d'exécuter du JavaScript arbitraire dans le navigateur de la victime en intégrant des charges utiles malveillantes dans les champs de métadonnées des fichiers DICOM. L'attaquant peut créer un fichier DICOM avec des charges utiles JavaScript dans des champs de métadonnées tels que Study Description, qui sont reflétés sans désinfection dans popup.jsp et archiving/uploadfiles.java lorsqu'ils sont traités par la fonctionnalité de téléchargement d'images DICOM.
Dans l'ancienne version, le nom du fichier était uploadfiles_jsp.java.
Le fichier web/archiving/uploadfiles.jsp gère le rendu du résultat du téléchargement de fichiers .DICOM et affiche certains champs DICOM. Ils sont reflétés sans traitement ni désinfection supplémentaires, ce qui conduit à une XSS réfléchie.
Le code vulnérable se produit (version courte) là où le Tag DICOM est traité. En particulier, StudyDescription est notre champ POC dans les images suivantes :
while (itr.hasNext()) {
i++;
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
} else {
try {
String fn = SCANDIR_BASE + "/from/" + filename + "_" + i;
File savedFile = new File(fn);
InputStream is = item.getInputStream();
FileUtils.copyInputStreamToFile(is, savedFile);
is.close();
DicomObject obj = Dicom.getDicomObject(savedFile);
if (obj == null) {
errors.add(item.getName());
} else {
patients.add(obj.getString(Tag.PatientID));
studies.add(obj.getString(Tag.StudyID) + "</td><td>" + obj.getString(Tag.StudyDescription).replaceAll("\\^", " "));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Note : la dernière version stable prête à l'emploi est légèrement en retard par rapport à la version testée. Mais la vulnérabilité est toujours présente et fonctionne à la fois sous Linux et Windows
Créez le fichier DICOM malveillant file.dcm en modifiant le StudyDescription avec le code HTML à injecter pour exécuter du JavaScript :
Une inspection plus approfondie et la gestion de la popup sont assurées par popup.js
Téléchargez ce fichier pour déclencher la XSS réfléchie :