
CVE-2026-25860 POC git
Wenn du dieses XSS mit RCE verketten möchtest, lies:
OpenClinic GA <= v5.351.19 (12/05/2026) enthält eine reflektierte Cross-Site-Scripting-Sicherheitslücke im DICOM-Bild-Upload-Handler, die es Angreifern ermöglicht, beliebiges JavaScript im Browser eines Opfers auszuführen, indem sie bösartige Payloads in DICOM-Datei-Metadatenfelder einbetten. Angreifer können eine DICOM-Datei mit JavaScript-Payloads in Metadatenfeldern wie Study Description erstellen, die ohne Bereinigung in popup.jsp und archiving/uploadfiles.java reflektiert werden, wenn sie über die Funktion „DICOM-Bilder hochladen“ verarbeitet werden. In der älteren Version lautete der Dateiname uploadfiles_jsp.java.
Die Datei web/archiving/uploadfiles.jsp verarbeitet die Darstellung des .DICOM-Upload-Ergebnisses und zeigt einige DICOM-Felder an. Sie werden ohne weitere Verarbeitung und Bereinigung reflektiert, was zu reflektiertem XSS führt.
Der anfällige Code tritt (in Kurzform) dort auf, wo der DICOM-Tag verarbeitet wird. Insbesondere ist StudyDescription unser POC-Feld in den folgenden Bildern:
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();
}
}
}
Hinweis: Die neueste stabile zum Download bereite Version ist einige Versionen hinter der getesteten. Die Sicherheitslücke ist jedoch weiterhin vorhanden und funktioniert sowohl unter Linux als auch unter Windows.
Erstelle die bösartige DICOM-Datei file.dcm, indem du das Feld StudyDescription mit dem HTML-Code modifizierst, der eingefügt werden soll, um JavaScript auszuführen:
Weitere Untersuchung und die Popup-Verwaltung erfolgt durch popup.js.
Lade diese Datei hoch, um das reflektierte XSS auszulösen: