
Apache OpenMeetings 9.1.0 - Alta - Remota - KMS sin autenticación - los docs de docker publican Kurento JSON-RPC en 8888
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-kms-unauth
Clase: KMS sin autenticación Alcance: Remoto
Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation
OpenMeetings Java establece por defecto kurento.ws.url en loopback. El InstallMediaServer.md oficial publica Kurento con docker -p 8888:8888. Ese JSON-RPC no tiene autenticación. Un WebSocket connect sin autenticar más invoke manager_ServerManager.getInfo devuelve Kurento 7.3.0.
| ID | aún sin CVE |
| Clase | KMS sin autenticación |
| Alcance | Remoto (JSON-RPC sin autenticación en el 8888 publicado) |
| CWE | CWE-306 |
| CVSS | Alto: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:L |
| Producto | Apache OpenMeetings + Kurento 7.3.0 |
| Afectado | 9.1.0 publicación de KMS 8888 en docs/docker |
| Autenticación | ninguna en Kurento JSON-RPC |
| Licencia | GNU Affero GPL v3.0 |
| Laboratorio | solo 127.0.0.1:18164. kurento/kurento-media-server:7.3.0 como la ruta de publicación de los docs. |
Fijé la etiqueta 9.1.0. Esa versión requiere KMS 7.3.0+.
Alcanzar el puerto Kurento publicado. Sin cabecera Authorization. El POST HTTP es solo WebSocket (426). ws://host:8888/kurento actualiza a 101.
| Método | Destino | Privilegio |
|---|---|---|
ping sin autenticación | Kurento JSON-RPC | Reconocimiento (probado en laboratorio): pong. |
connect sin autenticación | creación de sesión | Integridad (probado en laboratorio): sessionId sin ningún secreto. |
invoke sin autenticación manager_ServerManager.getInfo | ServerInfo | Reconocimiento (probado en laboratorio): versión 7.3.0, lista de módulos (chroma/core/...). |
PlayerEndpoint / RecorderEndpoint sin autenticación (mismo socket) | elementos multimedia de KMS | Reconocimiento / integridad (inferido): obtención HTTP/de archivo como el UID de KMS; creación/destrucción de pipeline. No ejercitado. El laboratorio se mantuvo en getInfo. |
Probado en laboratorio vs inferido: ping, connect, getInfo son de laboratorio. SSRF de PlayerEndpoint / DoS de pipeline se infieren del JSON-RPC sin autenticación.
Requiere: KMS publicado a la red tal como muestra InstallMediaServer.md (-p 8888:8888). El loopback por defecto de OM Java es seguro hasta esa publicación.
| Superficie | Motivo |
|---|---|
kurento.ws.url por defecto de OM Java | loopback. Este remanente es la publicación de los docs, no el valor por defecto de Java. |
/openmeetings de OM sin un SID | Wicket/CXF siguen requiriendo una sesión para las salas. |
POST HTTP /kurento sin Upgrade | 426. El JSON-RPC es el WebSocket. |
La imagen completa apache/openmeetings:9.1.0 inicia kurento-media-server en 0.0.0.0:8888 sin autenticación JSON-RPC, luego ese contenedor puede fallar catalina como nobody sin JAVA_HOME. El remanente que enseñan los docs es la publicación de KMS independiente. Probé en laboratorio kurento/kurento-media-server:7.3.0 con 127.0.0.1:18164:8888.
cd lab
./run.sh
Loopback ws://127.0.0.1:18164/kurento. Última línea del testigo:
SUCCESS OPENMEETINGS-KMS-UNAUTH-WITNESS
No publiques el 8888 en una interfaz pública. Vincula KMS a loopback o a una red compose privada. Coloca un token de autenticación en el JSON-RPC (secureKms de Kurento / proxy inverso). Cambia el ejemplo del documento de instalación para que no use -p 8888:8888.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
Proveedor: [email protected]