abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-kms-unauth
类别: 未授权 KMS 可达性: 远程
Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation
OpenMeetings Java 默认将 kurento.ws.url 设为回环地址。官方 InstallMediaServer.md 使用 docker -p 8888:8888 发布 Kurento。该 JSON-RPC 没有认证。未认证的 WebSocket connect 加上 invoke manager_ServerManager.getInfo 会返回 Kurento 7.3.0。
| ID | 暂无 CVE |
| 类别 | 未授权 KMS |
| 可达性 | 远程(在已发布的 8888 端口上未认证的 JSON-RPC) |
| CWE | CWE-306 |
| CVSS | 高危:8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:L |
| 产品 | Apache OpenMeetings + Kurento 7.3.0 |
| 受影响 | 9.1.0 文档/docker 发布 KMS 8888 |
| 认证 | Kurento JSON-RPC 无认证 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅 127.0.0.1:18164。kurento/kurento-media-server:7.3.0 作为文档发布路径。 |
我固定了标签 9.1.0。该版本要求 KMS 7.3.0+。
访问已发布的 Kurento 端口。无需 Authorization 头。HTTP POST 仅支持 WebSocket(426)。ws://host:8888/kurento 升级为 101。
| 方法 | 接收端 | 权限 |
|---|---|---|
未认证 ping | Kurento JSON-RPC | 侦察(实验验证): pong。 |
未认证 connect | 会话签发 | 完整性(实验验证): 无需密钥即可获得 sessionId。 |
未认证 invoke manager_ServerManager.getInfo | ServerInfo | 侦察(实验验证): 版本 7.3.0,模块列表(chroma/core/...)。 |
未认证 PlayerEndpoint / RecorderEndpoint(同一套接字) | KMS 媒体元素 | 侦察 / 完整性(推断): 以 KMS UID 进行 HTTP/文件获取;管道创建/销毁。未实际执行。实验仅停留在 getInfo。 |
实验验证与推断: ping、connect、getInfo 为实验验证。PlayerEndpoint SSRF / 管道 DoS 为基于未认证 JSON-RPC 的推断。
前提条件: KMS 按 InstallMediaServer.md 所示方式(-p 8888:8888)发布到网络。OM Java 默认回环在该发布之前是安全的。
| 攻击面 | 原因 |
|---|---|
OM Java kurento.ws.url 默认值 | 回环。此遗留问题是文档发布,而非 Java 默认值。 |
无 SID 的 OM /openmeetings | Wicket/CXF 仍需要会话才能进入房间。 |
无 Upgrade 的 HTTP POST /kurento | 426。JSON-RPC 是 WebSocket。 |
完整的 apache/openmeetings:9.1.0 镜像会在 0.0.0.0:8888 上启动 kurento-media-server,且无 JSON-RPC 认证,随后该容器可能因缺少 JAVA_HOME 而以 nobody 身份导致 catalina 失败。文档所教的遗留问题是独立 KMS 发布。我在 127.0.0.1:18164:8888 上对 kurento/kurento-media-server:7.3.0 进行了实验。
cd lab
./run.sh
回环 ws://127.0.0.1:18164/kurento。见证输出最后一行:
SUCCESS OPENMEETINGS-KMS-UNAUTH-WITNESS
不要在公共接口上发布 8888。将 KMS 绑定到回环或私有 compose 网络。在 JSON-RPC 上添加认证令牌(Kurento secureKms / 反向代理)。将安装文档示例从 -p 8888:8888 改掉。
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]