UnlockSec

Sample Assessment Report

Redacted for confidentiality

Q2 2025

API Security

REST, GraphQL & SOAP API Testing

Client

Confidential Client — SaaS Platform

Scope

REST API v2 (312 endpoints), GraphQL API (public schema), internal microservices API gateway

Duration

6 business days

Standard

OWASP API Security Top 10 2023

Executive Summary

UnlockSec assessed the client's API surface across REST, GraphQL, and internal microservice APIs. A total of 26 findings were identified including a Broken Object Level Authorization vulnerability affecting 312,000 customer records, a GraphQL introspection-enabled schema disclosure, and a mass assignment vulnerability allowing privilege escalation to administrator accounts.

Methodology

OWASP API Security Top 10 2023OWASP Testing GuideGraphQL Security ChecklistsREST API Security Best Practices

Sample Findings

API-001

BOLA — Broken Object Level Authorization on Customer Data API

Critical

Description

The GET /api/v2/customers/{customerId}/data endpoint does not validate the relationship between the authenticated user's organisation and the requested customer ID. An authenticated user from Organisation A can request data for customers belonging to Organisation B by supplying their customer IDs.

Recommendation

Implement server-side ownership validation on every object-level API request. Use scoped, non-predictable resource identifiers. Add centralised authorisation middleware rather than inline checks.

API-002

Mass Assignment — User Role Escalation via API

Critical

Description

The PUT /api/v2/users/profile endpoint accepts and processes the 'role' parameter which should be server-controlled. Supplying role: 'admin' in the request body successfully escalates the authenticated user to administrator privileges.

Recommendation

Implement an allowlist of accepted request body parameters. Exclude all security-sensitive fields (role, permissions, plan) from client-editable API parameters. Apply schema validation on all API inputs.

API-003

GraphQL Introspection Enabled in Production

High

Description

GraphQL introspection is enabled on the production endpoint, exposing the complete API schema including internal mutations, type definitions, and deprecated fields. This significantly reduces the reconnaissance barrier for targeted attacks.

Recommendation

Disable GraphQL introspection in production environments. Implement query depth limiting, complexity analysis, and field-level authorisation. Consider persisted queries for public-facing GraphQL APIs.

API-004

Excessive Data Exposure — API Returns Full Objects

High

Description

The /api/v2/users/search endpoint returns complete user objects including hashed passwords, internal user IDs, account creation timestamps, and administrative notes — far exceeding the data required by the calling client.

Recommendation

Apply response filtering at the API layer to return only fields required by the requesting client. Implement API response schemas and validate all outgoing payloads against them.

* Showing 4 of 30 total findings. Full report provided upon engagement.

Risk Summary

Critical2
High6
Medium11
Low7
Info4
Total Findings30

Deliverables Included

  • OWASP API Top 10 coverage report
  • Endpoint-by-endpoint risk assessment
  • GraphQL schema security review
  • Annotated Burp Suite and Postman collections as evidence
  • Remediation-tracked retest report

Ready for a real assessment?

Get a tailored API Security engagement led by certified operators with unlimited retests.

Request AssessmentView All Services