
CVE-2026-25860 POC git
如果你想将此 XSS 与 RCE 结合利用,可以阅读:
OpenClinic GA <= v5.351.19 (12/05/2026) 包含一个位于 DICOM 图像上传处理器中的反射型跨站脚本漏洞,攻击者可通过在 DICOM 文件元数据字段中嵌入恶意负载,在受害者的浏览器中执行任意 JavaScript。攻击者可以构造一个在 Study Description 等元数据字段中包含 JavaScript 负载的 DICOM 文件,当通过“上传 DICOM 图像”功能处理时,这些负载会在 popup.jsp 和 archiving/uploadfiles.java 中被无过滤地反射。在较旧的版本中,该文件名为 uploadfiles_jsp.java。
web/archiving/uploadfiles.jsp 文件负责处理 .DICOM 上传结果的渲染,并显示部分 DICOM 字段。这些字段在没有进一步计算和清理的情况下被反射,从而导致反射型 XSS。
漏洞代码出现在处理 DICOM Tag 的位置(简版),特别是 StudyDescription 是我们下面图片中的 POC 字段:
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();
}
}
}
注意:最新的稳定版即下即用可运行版本比测试版本落后一些。但该漏洞仍然存在,并且在 Linux 和 Windows 上均有效
创建一个恶意 DICOM 文件 file.dcm,修改其中的 StudyDescription 字段,注入用于执行 javascript 的 html 代码:
进一步检查发现,弹窗管理由 popup.js 处理。上传该文件即可触发反射型 XSS: