Security Advisory: Insecure Direct Object Reference (IDOR) Vulnerabilities
Summary
Multiple Insecure Direct Object Reference (IDOR) vulnerabilities were identified in the Nexudus Coworking platform’s public-facing controllers. These vulnerabilities allow an authenticated user (coworker) to access, modify, or enumerate resources belonging to other users by manipulating sequential or predictable object identifiers in HTTP requests.Vulnerability Details
What is IDOR?
An Insecure Direct Object Reference occurs when an application exposes internal object identifiers (such as database primary keys) in URLs or request parameters without verifying that the authenticated user is authorized to access the referenced object.Root Cause
Several controller actions accept user-supplied identifiers (integer IDs or GUIDs) to retrieve records from the database but fail to verify that the requesting user owns or is otherwise authorized to access the returned record. While many endpoints correctly implement ownership checks (e.g.,entity.Coworker != currentCoworker), several do not.
Affected Endpoints
1. Support — Unauthorized Help Desk Message Access
- Endpoint:
GET /Support/Message/{id} - Severity: High
- Impact: An authenticated coworker can read the full contents of help desk messages (including comments and attachments) belonging to other coworkers by iterating over sequential message IDs. This exposes private support conversations, potentially containing sensitive account details, billing disputes, or personal information.
2. Bookings — Visitor Information Disclosure
- Endpoint:
GET /Bookings/GetBookingVisitors?bookingId={id} - Severity: Medium
- Impact: An authenticated coworker can enumerate visitor lists of bookings belonging to other coworkers by iterating over sequential booking IDs.
3. Support — Unauthorized Request Closure
- Endpoint:
POST /Support/CloseRequest/{id} - Severity: Medium
- Impact: Any authenticated coworker within the same business can close support requests belonging to other coworkers. The authorization check verifies business membership rather than individual ownership.
Exploitation Prerequisites
- Authentication Required: Yes — attacker must have a valid coworker account.
- Same Business Membership: For the “close request” endpoint, the attacker must be a member of the same business (location) as the victim. The new comment endpoint did not check this.
- Identifier Predictability: Integer-based IDs are almost sequential and trivially enumerable.