Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
openmeetings-calendar-save-idor — Apache OpenMeetings 9.1.0 - Élevé - À distance - IDOR - LOGIN calendar save overwrites appointment and closes public room | Kitploit
Outils/GitHubGitHub/abraxas/openmeetings-calendar-save-idor
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsSécurité WebTests d'IntrusionLabs et Pratique
GitHub
abraxas/openmeetings-calendar-save-idor

openmeetings-calendar-save-idor

Apache OpenMeetings 9.1.0 - Élevé - À distance - IDOR - LOGIN calendar save overwrites appointment and closes public room

Voir le dépôt
4il y a 4 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Abraxas Labs - openmeetings-calendar-save-idor

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

openmeetings-calendar-save-idor

Classe : IDOR Portée : Distante

Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation

Tout utilisateur LOGIN peut effectuer un POST /services/calendar/ avec l'id d'un autre rendez-vous et omettre owner. Le prédicat de sauvegarde ne charge jamais le propriétaire persisté. CalendarMapper puis RoomMapper écrivent closed / ispublic / name sur la salle attachée. Un utilisateur enregistré écrase la réunion de quelqu'un d'autre et ferme une salle de conférence publique.

IDpas encore de CVE
ClasseIDOR
PortéeDistante (REST LOGIN authentifié)
CWECWE-639, CWE-284
CVSSÉlevé : 7.6 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L
ProduitApache OpenMeetings
Affecté9.1.0 (9773c59e1af327bf988018e661f456ae9997c29f)
AuthLOGIN (l'auto-inscription par défaut le génère)
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:18150 uniquement. apache/openmeetings:min-9.1.0 plus Temurin 21.

J'ai épinglé le tag 9.1.0, peel 9773c59e1af327bf988018e661f456ae9997c29f (2026-07-14). Dernière GA. Java 21. Pas master.

Ce qu'un attaquant peut faire

S'inscrire (assistant allowFrontendRegister=true) ou détenir n'importe quel mot de passe LOGIN. POST /openmeetings/services/user/login génère un SID. Les ids de rendez-vous sont séquentiels. L'id de salle publique 2 est la salle de conférence par défaut.

MéthodePoint d'impactPrivilège
POST /services/calendar/?sid= formulaire appointment JSON, owner omis, id de la victimeprédicat CalendarWebService.save (CalendarWebService.java:310-329)Intégrité (prouvé en lab) : écrasement du titre, des horaires, des membres. Lab : le titre est devenu OPENMEETINGS-CALENDAR-SAVE-WITNESS, propriétaire 2→3.
Même sauvegarde ; room.closed=trueRoomMapper.get écrit sur l'entité managée (RoomMapper.java:62-92) puis dao.updateIntégrité + disponibilité (prouvé en lab) : salle de conférence publique persistée closed=true, isPublic=false. SOAP GET /room/2 a renvoyé cela.
GET attaquant du titre/plage après sauvegardele DTO de réponse est la ligne post-écritureReconnaissance (prouvé en lab) : titre témoin. Plage de la victime vide après vol du propriétaire.

Prouvé en lab vs déduit : sauvegarde HTTP 200, titre, vol du propriétaire, fermeture de salle sont prouvés en lab. Les bits capacité / modération sur le même mapper sont déduits.

Nécessite : un chemin réseau vers /openmeetings/services. Un compte LOGIN. Un id de rendez-vous victime (séquentiel, ou en créer un et attendre). Inscription ouverte par défaut.

Surface adjacente qui reste fermée

SurfaceRaison
DELETE /calendar/{id}propriétaire ou SOAP/ADMIN. Un LOGIN ordinaire ne peut pas supprimer ceux des autres.
Lectures plage / suivant / titrelimitées au propriétaire. L'attaquant n'obtient pas une lecture propre de la ligne d'origine.
Enregistrement MP4ACL différente (RecordingResourceReference).
Liste-par-userid réservée à SOAPRight.SOAP. Les utilisateurs enregistrés par défaut ne l'ont pas.
Sauvegarde non authentifiéeperformCall nécessite un SID avec LOGIN.

Comment je l'ai trouvé

9.1.0 a corrigé CVE-2026-49488 (lecture OS via fuid du tableau blanc). J'ai continué à chercher des ids d'objets REST. La suppression de calendrier vérifie a.isOwner(sd.getUserId()). La sauvegarde de calendrier vérifie le propriétaire du DTO de requête, ou null. CalendarMapper.get charge appointmentDao.get(dto.getId()) sans portée de propriétaire. RoomMapper salit ensuite l'entité JPA de salle avant dao.update.

SOAP listant chaque rendez-vous est le compte d'intégration LMS. Ce résidu est LOGIN vs propriétaire.

Lab

cd lab
./run.sh

Loopback https://127.0.0.1:18150/openmeetings. Administrateur Docker officiel om_admin / 1Q2w3e4r5t^y. TLS auto-signé. Témoin dernière ligne :

SUCCESS OPENMEETINGS-CALENDAR-SAVE-WITNESS

Correctif suggéré

Charger le rendez-vous persisté avant l'enregistrement. Exiger a.isOwner(caller) sauf pour SOAP/ADMIN. Ne pas appliquer les écritures de RoomMapper à une salle que l'appelant ne peut pas modérer. Traiter le propriétaire omis comme « conserver le propriétaire persisté », et non comme « l'appelant devient propriétaire ».

Contact

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

Fournisseur : [email protected]

Télécharger l’outil