Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
openmeetings-calendar-save-idor — Apache OpenMeetings 9.1.0 – Hoch – Remote – IDOR – LOGIN-Kalenderspeicherung überschreibt Termin und schließt öffentlichen Raum | Kitploit
Tools/GitHubGitHub/abraxas/openmeetings-calendar-save-idor
SchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungWebsicherheitPenetrationstestsLabs & Praxis
GitHub
abraxas/openmeetings-calendar-save-idor

openmeetings-calendar-save-idor

Apache OpenMeetings 9.1.0 – Hoch – Remote – IDOR – LOGIN-Kalenderspeicherung überschreibt Termin und schließt öffentlichen Raum

Repository anzeigen
1vor 2 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - openmeetings-calendar-save-idor

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  openmeetings-calendar-save-idor

openmeetings-calendar-save-idor

Klasse: IDOR Reichweite: Remote

Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation

Jeder LOGIN-Benutzer kann POST /services/calendar/ mit der id eines anderen Termins aufrufen und owner weglassen. Das Save-Prädikat lädt niemals den persistierten Owner. CalendarMapper und dann RoomMapper schreiben closed / ispublic / name auf den angehängten Raum. Ein registrierter Benutzer überschreibt das Meeting eines anderen und schließt einen öffentlichen Konferenzraum.

IDnoch keine CVE
KlasseIDOR
ReichweiteRemote (authentifiziertes LOGIN-REST)
CWECWE-639, CWE-284
CVSSHoch: 7.6 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L
ProduktApache OpenMeetings
Betroffen9.1.0 (9773c59e1af327bf988018e661f456ae9997c29f)
AuthLOGIN (die standardmäßige Selbstregistrierung erzeugt diesen)
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18150. apache/openmeetings:min-9.1.0 plus Temurin 21.

Ich habe den Tag 9.1.0 gepinnt, Peel 9773c59e1af327bf988018e661f456ae9997c29f (2026-07-14). Neueste GA. Java 21. Nicht master.

Was ein Angreifer tun kann

Registrieren (Wizard allowFrontendRegister=true) oder ein beliebiges LOGIN-Passwort besitzen. POST /openmeetings/services/user/login erzeugt eine SID. Termin-IDs sind sequenziell. Die öffentliche Raum-ID 2 ist der Standard-Konferenzraum.

MethodeSinkPrivileg
POST /services/calendar/?sid= Formular appointment JSON, owner weggelassen, Opfer-idCalendarWebService.save-Prädikat (CalendarWebService.java:310-329)Integrität (im Lab nachgewiesen): Titel, Zeiten, Mitglieder überschreiben. Lab: Titel wurde OPENMEETINGS-CALENDAR-SAVE-WITNESS, Owner 2→3.
Gleicher Save; room.closed=trueRoomMapper.get schreibt auf die verwaltete Entity (RoomMapper.java:62-92), dann dao.updateIntegrität + Verfügbarkeit (im Lab nachgewiesen): öffentlicher Konferenzraum persistiert closed=true, isPublic=false. SOAP GET /room/2 gab das zurück.
Angreifer-GET Titel/Bereich nach dem SaveResponse-DTO ist die Zeile nach dem SchreibenRecon (im Lab nachgewiesen): Witness-Titel. Opfer-Bereich nach Owner-Diebstahl leer.

Im Lab nachgewiesen vs. abgeleitet: Save HTTP 200, Titel, Owner-Diebstahl, Raum-Schließung sind im Lab. Kapazitäts- / Moderations-Bits auf demselben Mapper sind abgeleitet.

Erfordert: Netzwerkpfad zu /openmeetings/services. Ein LOGIN-Konto. Eine Opfer-Termin-ID (sequenziell, oder selbst einen anlegen und warten). Standardmäßig offene Registrierung.

Angrenzende Oberfläche, die geschlossen bleibt

OberflächeWarum
DELETE /calendar/{id}Owner oder SOAP/ADMIN. Normales LOGIN kann fremde nicht löschen.
Bereichs- / Next- / Titel-Lesevorgängeowner-scoped. Angreifer erhält keinen sauberen Lesezugriff auf die ursprüngliche Zeile.
Recording-MP4andere ACL (RecordingResourceReference).
SOAP-only list-by-useridRight.SOAP. Standardmäßig registrierte Benutzer haben das nicht.
Nicht authentifizierter SaveperformCall benötigt eine SID mit LOGIN.

Wie ich es gefunden habe

9.1.0 schloss CVE-2026-49488 (Whiteboard-fuid-OS-Read). Ich suchte weiter nach REST-Objekt-IDs. Calendar delete prüft a.isOwner(sd.getUserId()). Calendar save prüft den Owner des Request-DTO, oder null. CalendarMapper.get lädt appointmentDao.get(dto.getId()) ohne Owner-Scope. RoomMapper macht dann die Room-JPA-Entity vor dao.update dirty.

SOAP-Auflistung aller Termine ist das LMS-Integrationskonto. Dieser Rest ist LOGIN vs. Eigentümer.

Labor

cd lab
./run.sh

Loopback https://127.0.0.1:18150/openmeetings. Offizieller Docker-Administrator om_admin / 1Q2w3e4r5t^y. Selbstsigniertes TLS. Zeuge letzte Zeile:

SUCCESS OPENMEETINGS-CALENDAR-SAVE-WITNESS

Vorgeschlagene Korrektur

Den persistierten Termin vor dem Speichern laden. a.isOwner(caller) verlangen, außer bei SOAP/ADMIN. RoomMapper-Schreibvorgänge nicht auf einen Raum anwenden, den der Aufrufer nicht moderieren kann. Ausgelassenen Eigentümer als "persistierten Eigentümer beibehalten" behandeln, nicht als "Aufrufer wird Eigentümer".

Kontakt

Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]

Anbieter: [email protected]

Tool herunterladen