
CVE-2026-25860 POC git
Se vuoi concatenare questa XSS con una RCE, puoi leggere:
OpenClinic GA <= v5.351.19 (12/05/2026) contiene una vulnerabilità di cross-site scripting riflesso nel gestore di caricamento delle immagini DICOM che consente agli attaccanti di eseguire JavaScript arbitrario nel browser della vittima incorporando payload malevoli nei campi dei metadati dei file DICOM. Gli attaccanti possono creare un file DICOM con payload JavaScript in campi dei metadati come Study Description, che vengono riflessi senza sanitizzazione in popup.jsp e archiving/uploadfiles.java quando vengono elaborati tramite la funzionalità Upload DICOM images.
Nella versione precedente il nome del file era uploadfiles_jsp.java.
Il file web/archiving/uploadfiles.jsp gestisce il rendering dei risultati del caricamento di file e mostra alcuni campi DICOM. Questi vengono riflessi senza ulteriori elaborazioni o sanitizzazioni, portando a una XSS riflessa.
.DICOMIl codice vulnerabile si trova (in forma abbreviata) nel punto in cui viene gestito il Tag DICOM. In particolare StudyDescription è il campo del nostro POC nelle immagini seguenti:
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();
}
}
}
Nota: l'ultima release stabile pronta all'esecuzione (download ready-to-run) è di qualche versione precedente a quella testata, ma la vulnerabilità è ancora presente e funziona sia su Linux che su Windows
Crea il file DICOM malevolo file.dcm modificando il campo StudyDescription con il codice HTML da iniettare per eseguire JavaScript:

L'ispezione approfondita e la gestione del popup sono gestite da popup.js.
Carica questo file per innescare la XSS riflessa:

