
Apache OpenMeetings 9.1.0 – Hoch – Remote – Verbleibende Dateischreiboperation – ADMIN_BACKUP-Import überspringt Path.of bei Type.PATH
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-backup-config-path
Klasse: Übriggebliebene Dateischreiboperation Reichweite: Remote
Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation
CVE-2023-29246 hat die NUL-Injection in der Admin-Konfiguration Type.PATH über Path.of geschlossen. BackupImport.importConfigs schreibt diese Zeilen jedoch weiterhin ohne Path.of. Eine ADMIN_BACKUP-Wiederherstellung speichert einen rohen Konverter-Pfad. Unter Java 21 lehnt ProcessBuilder ebenfalls NUL ab, daher handelt es sich hier um das Überbleibsel der Sink von 29246, nicht um eine neue argv-RCE.
| ID | noch keine CVE |
| Klasse | Übriggebliebene Dateischreiboperation (Überbleibsel von CVE-2023-29246) |
| Reichweite | Remote (authentifizierte ADMIN_BACKUP-Wiederherstellung) |
| CWE | CWE-20, CWE-22 |
| CVSS | Hoch: 6.5 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H |
| Produkt | Apache OpenMeetings |
| Betroffen | 9.1.0 (9773c59e1af327bf988018e661f456ae9997c29f) Backup-Import |
| Auth | ADMIN_BACKUP (der Installer-Admin besitzt sie) |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1:18160. apache/openmeetings:min-9.1.0 plus Temurin 21. |
Ich habe den Tag 9.1.0 gepinnt. Keine NUL-Payload. Keine ffmpeg-Ausführung.
ADMIN_BACKUP besitzen (Installer-Admin oder ein eingeschleuster Backup-Admin). Ein Backup-Zip wiederherstellen, dessen Konfigurationen imagemagick_path / ffmpeg auf eine beliebige Zeichenkette setzen.
| Methode | Sink | Berechtigung |
|---|---|---|
admin.sh -r / Wicket-Backup-Wiederherstellung | BackupImport.importConfigs cfgDao.update Type.PATH, kein Path.of | Integrität (im Lab nachgewiesen): configuration.path.imagemagick und path.ffmpeg als PATH /tmp/OPENMEETINGS-BACKUP-CONFIG-PATH-WITNESS gespeichert. |
| Spätere Konvertierungsjobs (abgeleitet) | imagemagick/ffmpeg/sox/office argv aus diesen Zeilen | Integrität / Verfügbarkeit (abgeleitet): Konverter auf einen Angreiferpfad gerichtet. Java 21 ProcessBuilder lehnt NUL weiterhin ab. Nicht ausgeführt. |
Im Lab nachgewiesen vs. abgeleitet: Die gespeicherte Type.PATH-Witness-Zeichenkette ist im Lab nachgewiesen. Die Konverter-Ausführung ist abgeleitet. NUL-argv-RCE ist auf diesem JDK geschlossen (InvalidPathException Nul character not allowed bei Path.of; ProcessBuilder lehnt NUL ebenfalls ab).
Kontrolle: Path.of akzeptiert diesen Unix-Witness-Pfad. Das Überbleibsel ist die fehlende Prüfung beim Import, nicht eine Umgehung von Path.of für einen normalen Unix-Pfad. Das UI-ConfigForm verwendet weiterhin Path.of.
Erfordert: ADMIN_BACKUP. Eine Wiederherstellung. Wicket /admin/backup/upload mit einer REST-SID gab Zugriff verweigert zurück (benötigt die Websocket-Client-SID). Das Lab verwendete admin.sh -r, dasselbe BackupImport.performImport.
| Angriffsfläche | Grund |
|---|---|
| Admin-Config-UI-PATH-Schlüssel | Path.of (ConfigForm). NUL wirft eine Exception. |
| NUL in ProcessBuilder unter Java 21 | abgelehnt. Die CVE-2023-29246-RCE lässt sich auf diesem JDK nicht wiederholen. |
| ROOM / LOGIN-Wiederherstellung | kein ADMIN_BACKUP. |
29246 hat die UI gepatcht. Ich habe importConfigs nach Path.of durchsucht. Die Neuzuordnung imagemagick_path → path.imagemagick erzwingt Type.PATH und aktualisiert das DAO. Dieselbe Klasse, die die UI nach einer Wiederherstellung verwendet.
cd lab
./run.sh
Loopback https://127.0.0.1:18160/openmeetings. Letzte Zeile des Zeugen:
SUCCESS OPENMEETINGS-BACKUP-CONFIG-PATH-WITNESS
Führen Sie denselben Path.of / Type.PATH-Validator in BackupImport.importConfigs aus, den ConfigForm verwendet. Lehnen Sie NUL und nicht-kanonische Konverterpfade vor cfgDao.update ab.
Abraxas Labs – https://abraxaslabs.tech – https://github.com/abraxas – https://x.com/abraxas_null – [email protected]
Anbieter: [email protected]