
Apache OpenMeetings 9.1.0 - उच्च - रिमोट - फ़ाइल लेखन अवशेष - ADMIN_BACKUP आयात Type.PATH पर Path.of को छोड़ देता है
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 ने Path.of के माध्यम से Admin Config Type.PATH पर NUL इंजेक्शन को बंद कर दिया। BackupImport.importConfigs अभी भी उन पंक्तियों को बिना Path.of के लिखता है। एक ADMIN_BACKUP रिस्टोर एक कच्चा कनवर्टर पथ संग्रहीत करता है। Java 21 पर, ProcessBuilder भी NUL को अस्वीकार करता है, इसलिए यह 29246 sink का अवशेष है, न कि कोई नया argv RCE।
| ID | अभी तक कोई 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 exec नहीं।
ADMIN_BACKUP रखें (इंस्टॉलर एडमिन, या एक रोपित बैकअप एडमिन)। एक बैकअप ज़िप रिस्टोर करें जिसकी कॉन्फ़िग 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 के रूप में संग्रहीत किया गया। |
| बाद के कनवर्ज़न जॉब्स (अनुमानित) | उन पंक्तियों से imagemagick/ffmpeg/sox/office argv | अखंडता / उपलब्धता (अनुमानित): कनवर्टर को हमलावर के पथ पर इंगित किया गया। Java 21 ProcessBuilder अभी भी NUL को अस्वीकार करता है। इसका परीक्षण नहीं किया गया। |
लैब-प्रमाणित बनाम अनुमानित: संग्रहीत Type.PATH witness स्ट्रिंग लैब है। कनवर्टर exec अनुमानित है। NUL argv RCE इस JDK पर बंद है (Path.of पर InvalidPathException Nul character not allowed; ProcessBuilder भी NUL को अस्वीकार करता है)।
नियंत्रण: Path.of इस Unix witness पथ को स्वीकार करता है। अवशेष आयात पर अनुपस्थित जाँच है, न कि सामान्य Unix पथ के Path.of बायपास का। UI ConfigForm अभी भी Path.of का उपयोग करता है।
आवश्यक: ADMIN_BACKUP। एक रिस्टोर। REST SID के साथ Wicket /admin/backup/upload ने पहुँच अस्वीकृत लौटाया (websocket Client SID की आवश्यकता है)। लैब ने admin.sh -r का उपयोग किया, वही BackupImport.performImport।
| सतह | क्यों |
|---|---|
| Admin Config UI PATH कुंजियाँ | Path.of (ConfigForm)। NUL थ्रो करता है। |
| Java 21 पर ProcessBuilder में NUL | अस्वीकृत। CVE-2023-29246 RCE इस JDK पर दोबारा नहीं चलता। |
| ROOM / LOGIN रिस्टोर | कोई ADMIN_BACKUP नहीं। |
29246 ने UI को पैच किया। मैंने importConfigs में Path.of के लिए grep किया। रीमैप imagemagick_path → path.imagemagick Type.PATH को बाध्य करता है और DAO को अपडेट करता है। वही वर्ग जिसका UI रिस्टोर के बाद उपयोग करता है।
cd lab
./run.sh
लूपबैक https://127.0.0.1:18160/openmeetings। अंतिम पंक्ति देखी गई:
SUCCESS OPENMEETINGS-BACKUP-CONFIG-PATH-WITNESS
BackupImport.importConfigs में वही Path.of / Type.PATH वैलिडेटर चलाएँ जो ConfigForm उपयोग करता है। cfgDao.update से पहले NUL और गैर-विहित कन्वर्टर पथों को अस्वीकार करें।
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
विक्रेता: [email protected]