
Apache OpenMeetings 9.1.0 - Élevée - Distante - KMS non authentifié - docs docker publie Kurento JSON-RPC sur 8888
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-kms-unauth
Classe : KMS non authentifié Portée : Distante
Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation
OpenMeetings Java définit kurento.ws.url par défaut sur loopback. Le document officiel InstallMediaServer.md publie Kurento avec docker -p 8888:8888. Ce JSON-RPC n'a aucune authentification. Un connect WebSocket non authentifié suivi de invoke manager_ServerManager.getInfo renvoie Kurento 7.3.0.
| ID | pas encore de CVE |
| Classe | KMS non authentifié |
| Portée | Distante (JSON-RPC non authentifié sur le port 8888 publié) |
| CWE | CWE-306 |
| CVSS | Élevé : 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:L |
| Produit | Apache OpenMeetings + Kurento 7.3.0 |
| Affecté | 9.1.0 publication docs/docker du KMS 8888 |
| Auth | aucune sur Kurento JSON-RPC |
| Licence | GNU Affero GPL v3.0 |
| Lab | 127.0.0.1:18164 uniquement. kurento/kurento-media-server:7.3.0 comme chemin de publication des docs. |
J'ai épinglé le tag 9.1.0. KMS 7.3.0+ est requis par cette version.
Atteindre le port Kurento publié. Aucun en-tête Authorization. Le POST HTTP est réservé au WebSocket (426). ws://host:8888/kurento passe en 101.
| Méthode | Cible | Privilège |
|---|---|---|
ping non authentifié | Kurento JSON-RPC | Reconnaissance (prouvé en lab) : pong. |
connect non authentifié | création de session | Intégrité (prouvé en lab) : sessionId sans secret. |
invoke manager_ServerManager.getInfo non authentifié | ServerInfo | Reconnaissance (prouvé en lab) : version 7.3.0, liste des modules (chroma/core/...). |
PlayerEndpoint / RecorderEndpoint non authentifiés (même socket) | éléments média KMS | Reconnaissance / intégrité (déduit) : récupération HTTP/fichier avec l'UID du KMS ; création/destruction de pipeline. Non exercé. Le lab est resté sur getInfo. |
Prouvé en lab vs déduit : ping, connect, getInfo sont prouvés en lab. Le SSRF via PlayerEndpoint / le DoS de pipeline sont déduits du JSON-RPC non authentifié.
Nécessite : que KMS soit publié sur le réseau comme le montre InstallMediaServer.md (-p 8888:8888). Le loopback par défaut d'OM Java est sûr tant que cette publication n'a pas lieu.
| Surface | Raison |
|---|---|
kurento.ws.url par défaut d'OM Java | loopback. Ce reliquat vient de la publication des docs, pas du défaut Java. |
OM /openmeetings sans SID | Wicket/CXF exigent toujours une session pour les salles. |
POST HTTP /kurento sans Upgrade | 426. Le JSON-RPC passe par le WebSocket. |
L'image complète apache/openmeetings:9.1.0 démarre kurento-media-server sur 0.0.0.0:8888 sans authentification JSON-RPC, puis ce conteneur peut faire échouer catalina en tant que nobody sans JAVA_HOME. Le reliquat que les docs enseignent est la publication du KMS autonome. J'ai monté un lab avec kurento/kurento-media-server:7.3.0 et 127.0.0.1:18164:8888.
cd lab
./run.sh
Loopback ws://127.0.0.1:18164/kurento. Dernière ligne du témoin :
SUCCESS OPENMEETINGS-KMS-UNAUTH-WITNESS
Ne publiez pas 8888 sur une interface publique. Liez KMS au loopback ou à un réseau compose privé. Ajoutez un jeton d'authentification sur le JSON-RPC (Kurento secureKms / proxy inverse). Modifiez l'exemple du document d'installation pour qu'il n'utilise plus -p 8888:8888.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
Fournisseur : [email protected]