Permission and Authorization Bugs

// 5 bugs

Bugs where users can access, edit, delete, or view resources they shouldn't be allowed to.

// Why it matters

Permission bugs are among the most serious in any product. A user reading another user's data by changing an ID in the URL, a viewer performing editor actions through the API, or a direct URL bypassing an access check can expose sensitive information and trigger compliance or legal issues.

// Common symptoms

// Testing types:Security testingAPI testingManual testingExploratory testing
Practice this β†’ Hunt these bugs hands-on in the Buggy Web App.

// Bugs in this category

Difficulty
Severity

Showing 5 of 5 bugs

User Can Access Another User's ObjectCritical

When an application looks up a resource by ID without verifying the requesting user owns or is permitted to access that specific record, any authenticated user can read, modify, or delete another user's data by supplying the other user's resource ID. This is an Insecure Direct Object Reference (IDOR) vulnerability.

IntermediateSecurity testingAPI testingManual testing
Hidden UI Action Still Works Through APIHigh

When a button or action is hidden from lower-privileged users in the UI, but the underlying API endpoint does not enforce the same permission server-side, the restricted action can be executed by any authenticated user who calls the API directly. Authorization is only enforced at the presentation layer, not on the server.

IntermediateSecurity testingAPI testingManual testing
Mass Assignment Allows Role EscalationCritical

Any authenticated user can promote their own account to admin by including a 'role' field in the body of a PATCH /api/users/me request. The endpoint deserialises the entire request body onto the user record without an allowlist, so the role field is treated as a normal updatable field rather than a protected one.

IntermediateSecurity testingAPI testingManual testing
Deleted Account Still Passes Auth ChecksHigh

After an administrator deletes or disables a user account, that user's existing bearer token continues to authenticate successfully and passes authorisation checks on protected endpoints. The authentication middleware verifies only the token's signature and expiry β€” it never queries the database to confirm the account still exists and is active.

BeginnerSecurity testingAPI testingManual testing
Admin Page Accessible by Direct URLCritical

An admin-only page is hidden from the navigation for normal users, but the route itself has no server-side authorization. A non-admin who navigates directly to the admin URL can load the page and, often, perform admin actions β€” because access control was applied to the menu, not the route or its APIs.

BeginnerSecurity testingManual testingAPI testing

// Practise finding these bugs

Hunt permission and authorization bugs hands-on in a live practice app, then check your findings against the seeded-bug answer guide.