
Apache OpenMeetings 9.1.0 – Hoch – Remote – Verbleibende Berechtigungen – SOAP POST /user kopiert UserDTO.rights einschließlich ADMIN
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-soap-user-rights
Klasse: Privilegien-Rest Reichweite: Remote
Apache OpenMeetings 9.1.0. SOAP POST /user/ kopiert UserDTO.rights und aktualisiert per id. SOAP ist das LMS-Integrationskonto. Es soll unterhalb von ADMIN bleiben. UserMapper führt userDao.get(dto.getId()) aus und dann u.setRights(dto.getRights()). UserWebService.add fügt ROOM/LOGIN/DASHBOARD hinzu und entfernt ADMIN nie.
| ID | noch keine CVE |
| Klasse | Privilegien-Rest |
| Reichweite | Remote (SOAP-SID) |
| CWE | CWE-269, CWE-280 |
| CVSS | Hoch: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Produkt | Apache OpenMeetings 9.1.0 |
| Auth | Right.SOAP (nicht ADMIN) |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1:18152 |
| Methode | Sink | Privileg |
|---|---|---|
SOAP POST /services/user/?sid= rights=["ADMIN"] | UserMapper.setRights + userDao.update | Integrität (im Lab nachgewiesen): ADMIN einschleusen. Lab: plantedadm Vorname als Nachweis, DELETE /user/3 als eingeschleuster Benutzer gab 200 Deleted zurück. SOAP-only soaplab DELETE war error.notallowed. |
Gleicher POST mit vorhandener id | userDao.get(dto.getId()) | Integrität (im Lab nachgewiesen): id-Merge-Überschreiben. Lab: Benutzer 4 Login mergeover mit ADMIN. |
Geschlossen: DELETE /user/{id} benötigt weiterhin ADMIN. ROOM-SID ist NO_PERMISSION beim Hinzufügen. Frontend-Registrierung nimmt kein rights-Array entgegen.
cd lab
./run.sh
Letzte Zeile: SUCCESS OPENMEETINGS-SOAP-RIGHTS-WITNESS
Vorgeschlagene Korrektur: UserDTO.rights bei SOAP add ignorieren oder nur LOGIN/ROOM/DASHBOARD zulassen. Niemals load-by-id bei add. ADMIN/SOAP entfernen, es sei denn der Aufrufer ist ADMIN.
Abraxas Labs – https://abraxaslabs.tech – https://github.com/abraxas – https://x.com/abraxas_null – [email protected]
Anbieter: [email protected]