
Apache OpenMeetings 9.1.0 - Alta - Remoto - Resto de privilegios - SOAP POST /user copia UserDTO.rights incluyendo ADMIN
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-soap-user-rights
Clase: Privilegio residual Alcance: Remoto
Apache OpenMeetings 9.1.0. SOAP POST /user/ copia UserDTO.rights y actualizará por id. SOAP es la cuenta de integración del LMS. Se supone que debe permanecer por debajo de ADMIN. UserMapper hace userDao.get(dto.getId()) y luego u.setRights(dto.getRights()). UserWebService.add añade ROOM/LOGIN/DASHBOARD y nunca elimina ADMIN.
| ID | aún sin CVE |
| Clase | Privilegio residual |
| Alcance | Remoto (SID de SOAP) |
| CWE | CWE-269, CWE-280 |
| CVSS | Alto: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Producto | Apache OpenMeetings 9.1.0 |
| Autenticación | Right.SOAP (no ADMIN) |
| Licencia | GNU Affero GPL v3.0 |
| Laboratorio | solo 127.0.0.1:18152 |
| Método | Sumidero | Privilegio |
|---|---|---|
SOAP POST /services/user/?sid= rights=["ADMIN"] | UserMapper.setRights + userDao.update | Integridad (probado en laboratorio): implantar ADMIN. Laboratorio: testigo de nombre plantedadm, DELETE /user/3 como usuario implantado devolvió 200 Deleted. El DELETE de soaplab solo por SOAP fue error.notallowed. |
Mismo POST con id existente | userDao.get(dto.getId()) | Integridad (probado en laboratorio): sobrescritura por fusión de id. Laboratorio: usuario 4 login mergeover con ADMIN. |
Cerrado: DELETE /user/{id} sigue requiriendo ADMIN. El SID de ROOM es NO_PERMISSION al añadir. El registro del frontend no acepta un array de derechos.
cd lab
./run.sh
Última línea: SUCCESS OPENMEETINGS-SOAP-RIGHTS-WITNESS
Corrección sugerida: ignorar UserDTO.rights al añadir por SOAP, o permitir solo LOGIN/ROOM/DASHBOARD. Nunca cargar por id al añadir. Eliminar ADMIN/SOAP a menos que el llamador sea ADMIN.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
Proveedor: [email protected]