
Apache OpenMeetings 9.1.0 – Hoch – Remote – Unauth KMS – docs docker veröffentlicht Kurento JSON-RPC auf 8888
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-kms-unauth
Klasse: Unauth KMS Reichweite: Remote
Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation
OpenMeetings Java setzt kurento.ws.url standardmäßig auf Loopback. Die offizielle InstallMediaServer.md veröffentlicht Kurento mit docker -p 8888:8888. Dieses JSON-RPC hat keine Authentifizierung. Ein unauthentifiziertes WebSocket-connect plus invoke manager_ServerManager.getInfo liefert Kurento 7.3.0 zurück.
| ID | noch keine CVE |
| Klasse | Unauth KMS |
| Reichweite | Remote (unauthentifiziertes JSON-RPC auf veröffentlichtem 8888) |
| CWE | CWE-306 |
| CVSS | Hoch: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:L |
| Produkt | Apache OpenMeetings + Kurento 7.3.0 |
| Betroffen | 9.1.0 Docs/Docker-Veröffentlichung von KMS 8888 |
| Auth | keine bei Kurento JSON-RPC |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1:18164. kurento/kurento-media-server:7.3.0 als der in den Docs veröffentlichte Pfad. |
Ich habe den Tag 9.1.0 gepinnt. KMS 7.3.0+ wird von diesem Release vorausgesetzt.
Den veröffentlichten Kurento-Port erreichen. Kein Authorization-Header. HTTP POST ist nur WebSocket (426). ws://host:8888/kurento führt ein Upgrade auf 101 durch.
| Methode | Senke | Privileg |
|---|---|---|
Unauth ping | Kurento JSON-RPC | Recon (im Lab nachgewiesen): pong. |
Unauth connect | Session-Erzeugung | Integrität (im Lab nachgewiesen): sessionId ohne Secret. |
Unauth invoke manager_ServerManager.getInfo | ServerInfo | Recon (im Lab nachgewiesen): Version 7.3.0, Modulliste (chroma/core/...). |
Unauth PlayerEndpoint / RecorderEndpoint (gleicher Socket) | KMS-Medienelemente | Recon / Integrität (abgeleitet): HTTP-/Datei-Abruf als die KMS-UID; Pipeline-Erstellung/-Zerstörung. Nicht ausgeführt. Das Lab blieb bei getInfo. |
Im Lab nachgewiesen vs. abgeleitet: ping, connect, getInfo sind Lab. PlayerEndpoint-SSRF / Pipeline-DoS sind aus unauthentifiziertem JSON-RPC abgeleitet.
Voraussetzung: KMS ist so im Netzwerk veröffentlicht, wie InstallMediaServer.md es zeigt (-p 8888:8888). Der OM-Java-Standard von Loopback ist sicher, bis diese Veröffentlichung erfolgt.
| Angriffsfläche | Warum |
|---|---|
OM Java kurento.ws.url Standard | Loopback. Dieser Überrest ist die Docs-Veröffentlichung, nicht der Java-Standard. |
OM /openmeetings ohne SID | Wicket/CXF wollen für Räume weiterhin eine Session. |
HTTP POST /kurento ohne Upgrade | 426. JSON-RPC ist das WebSocket. |
Das vollständige Image apache/openmeetings:9.1.0 startet kurento-media-server auf 0.0.0.0:8888 ohne JSON-RPC-Authentifizierung; anschließend kann dieser Container catalina als nobody ohne JAVA_HOME fehlschlagen lassen. Der Überrest, den die Docs lehren, ist die eigenständige KMS-Veröffentlichung. Ich habe kurento/kurento-media-server:7.3.0 mit 127.0.0.1:18164:8888 im Lab getestet.
cd lab
./run.sh
Loopback ws://127.0.0.1:18164/kurento. Letzte Zeile des Witness:
SUCCESS OPENMEETINGS-KMS-UNAUTH-WITNESS
8888 nicht auf einer öffentlichen Schnittstelle veröffentlichen. KMS an Loopback oder ein privates Compose-Netzwerk binden. Einen Auth-Token auf das JSON-RPC setzen (Kurento secureKms / Reverse Proxy). Das Beispiel in der Installationsdokumentation von -p 8888:8888 weg ändern.
Abraxas Labs – https://abraxaslabs.tech – https://github.com/abraxas – https://x.com/abraxas_null – [email protected]
Anbieter: [email protected]