
CVE-2026-25860 إثبات المفهوم git
إذا كنت تريد ربط هذه الثغرة XSS بـ RCE يمكنك القراءة:
OpenClinic GA <= v5.351.19 (12/05/2026) يحتوي على ثغرة برمجة نصية عبر المواقع منعكسة (Reflected XSS) في معالج رفع صور DICOM، مما يسمح للمهاجمين بتنفيذ JavaScript عشوائي في متصفح الضحية عن طريق تضمين حمولات خبيثة في حقول بيانات تعريف ملف DICOM. يمكن للمهاجمين إنشاء ملف DICOM بحمولات JavaScript في حقول البيانات الوصفية مثل Study Description، والتي تنعكس دون تعقيم في popup.jsp و archiving/uploadfiles.java عند معالجتها عبر ميزة Upload DICOM images.
في الإصدار الأقدم كان اسم الملف uploadfiles_jsp.java.
يقوم ملف web/archiving/uploadfiles.jsp بمعالجة عرض نتيجة رفع .DICOM ويعرض بعض حقول DICOM. تُعرض هذه الحقول دون مزيد من المعالجة أو التعقيم، مما يؤدي إلى XSS منعكسة.
الكود المستضعف يحدث (نسخة مختصرة) عند معالجة Tag الخاصة بـ DICOM. وبشكل خاص 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();
}
}
}
ملاحظة: أحدث إصدار ثابت جاهز للتشغيل (ready-to-run) متأخر ببعض الإصدارات عن الإصدار المختبر. لكن الثغرة ما زالت موجودة وتعمل على كل من Linux و Windows
أنشئ ملف DICOM الخبيث file.dcm عن طريق تعديل StudyDescription بكود HTML للحقن لتنفيذ جافاسكريبت:
مزيد من الفحص وإدارة النوافذ المنبثقة تتم عبر popup.js
ارفع هذا الملف لتشغيل XSS المنعكسة: