
Apache OpenMeetings 9.1.0 - عالية - عن بُعد - بقايا كتابة ملفات - استيراد ADMIN_BACKUP يتخطى Path.of عند Type.PATH
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-backup-config-path
الفئة: بقايا كتابة ملفات الوصول: عن بُعد
Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation
أغلقت CVE-2023-29246 حقن NUL في Admin Config Type.PATH عبر Path.of. لا يزال BackupImport.importConfigs يكتب تلك الصفوف دون Path.of. استعادة ADMIN_BACKUP تخزّن مسار محوّل خام. على Java 21، يرفض ProcessBuilder أيضًا NUL، لذا فهذه بقايا sink الخاص بـ 29246، وليست RCE جديدة عبر argv.
| المعرّف | لا يوجد CVE بعد |
| الفئة | بقايا كتابة ملفات (بقايا CVE-2023-29246) |
| الوصول | عن بُعد (استعادة ADMIN_BACKUP مصادَق عليها) |
| CWE | CWE-20، CWE-22 |
| CVSS | مرتفع: 6.5 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H |
| المنتج | Apache OpenMeetings |
| المتأثر | 9.1.0 (9773c59e1af327bf988018e661f456ae9997c29f) استيراد النسخ الاحتياطي |
| المصادقة | ADMIN_BACKUP (يمتلكها مدير التثبيت) |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1:18160 فقط. apache/openmeetings:min-9.1.0 مع Temurin 21. |
ثبّتُت الوسم 9.1.0. لا حمولة NUL. لا تنفيذ ffmpeg.
امتلاك ADMIN_BACKUP (مدير التثبيت، أو مدير نسخ احتياطي مزروع). استعادة ملف zip نسخ احتياطي تضبط إعداداته imagemagick_path / ffmpeg إلى سلسلة عشوائية.
| الطريقة | الـ sink | الصلاحية |
|---|---|---|
admin.sh -r / استعادة النسخ الاحتياطي عبر Wicket | BackupImport.importConfigs cfgDao.update Type.PATH، دون Path.of | السلامة (مُثبتة مختبريًا): يُخزَّن configuration.path.imagemagick وpath.ffmpeg كـ PATH بالقيمة /tmp/OPENMEETINGS-BACKUP-CONFIG-PATH-WITNESS. |
| مهام التحويل اللاحقة (مُستنتجة) | argv الخاص بـ imagemagick/ffmpeg/sox/office من تلك الصفوف | السلامة / التوافر (مُستنتج): المحوّل موجّه إلى مسار يتحكم به المهاجم. لا يزال ProcessBuilder في Java 21 يرفض NUL. لم يُجرَّب. |
مُثبت مختبريًا مقابل مُستنتج: سلسلة الشاهد المخزّنة من نوع Type.PATH مُثبتة مختبريًا. تنفيذ المحوّل مُستنتج. RCE عبر argv بـ NUL مغلقة على هذا الـ JDK (InvalidPathException Nul character not allowed عند Path.of؛ كما يرفض ProcessBuilder NUL).
الضابط: يقبل Path.of مسار الشاهد هذا على Unix. البقايا هي الفحص المفقود عند الاستيراد، وليست تجاوزًا لـ Path.of لمسار Unix عادي. لا يزال ConfigForm في الواجهة يستخدم Path.of.
يتطلب: ADMIN_BACKUP. عملية استعادة. أعاد /admin/backup/upload في Wicket مع SID من REST رفض الوصول (يحتاج Client SID الخاص بـ websocket). استخدم المختبر admin.sh -r، وهو نفس BackupImport.performImport.
| السطح | السبب |
|---|---|
| مفاتيح PATH في واجهة Admin Config | Path.of (ConfigForm). NUL يرمي استثناءً. |
| NUL في ProcessBuilder على Java 21 | مرفوض. لا تُعاد RCE الخاصة بـ CVE-2023-29246 على هذا الـ JDK. |
| استعادة ROOM / LOGIN | لا ADMIN_BACKUP. |
رقّعت 29246 الواجهة. بحثت في importConfigs عن Path.of. إعادة التعيين imagemagick_path → path.imagemagick تفرض Type.PATH وتحدّث الـ DAO. نفس الفئة التي تستخدمها الواجهة بعد الاستعادة.
cd lab
./run.sh
Loopback https://127.0.0.1:18160/openmeetings. السطر الأخير من الشاهد:
SUCCESS OPENMEETINGS-BACKUP-CONFIG-PATH-WITNESS
شغّل نفس المدقق Path.of / Type.PATH في BackupImport.importConfigs الذي يستخدمه ConfigForm. ارفض مسارات المحوّل التي تحتوي على NUL أو غير القانونية قبل cfgDao.update.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
المورّد: [email protected]