In scope
portal.example.test
api.example.test/v1
Web and JSON API
Public demonstration · No client data
A fictional, publication-safe example showing how CyberKareem structures scope, evidence, risk, remediation, and retest decisions.
Every organization, hostname, account, finding, date, request, and outcome below is fictional. This page demonstrates reporting structure only and is not evidence of a real assessment.
Executive view
The fictional Example Portal assessment identified one high-risk authorization failure and one medium-risk authentication-control weakness. No critical issue or direct server compromise path was demonstrated within the sample scope.
Assessment frame
portal.example.test
api.example.test/v1
Web and JSON API
Two standard users
One organization admin
Synthetic tenant data
Production systems
Social engineering and denial of service
Third-party platforms
Roles, trust boundaries, routes, assets, and data flows.
Authentication, authorization, input handling, sessions, and business logic.
Reproduce with a negative control and minimize impact.
Connect technical evidence to business exposure and a precise fix.
Verify the original path, regression coverage, and legitimate behavior.
Finding detail
A standard authenticated user can substitute an invoice identifier belonging to another fictional tenant. The API returns the foreign invoice because it checks authentication but does not constrain the record to the caller's tenant.
GET /v1/invoices/inv_example_tenant_b HTTP/1.1
Host: api.example.test
Authorization: Bearer <tenant-a-standard-user-token>
HTTP/1.1 200 OK
{"id":"inv_example_tenant_b","tenant":"tenant-b","total":"[synthetic]"}Finding resolution
The lookup uses the user-controlled invoice identifier as its only record constraint. Authentication establishes identity, but the data-access layer does not enforce the caller's tenant or an explicit invoice permission.
| Test | Expected result |
|---|---|
| Tenant A reads Tenant A invoice | 200, complete authorized response |
| Tenant A requests Tenant B invoice | 404 or policy-equivalent denial, no foreign metadata |
| Tenant A exports Tenant B invoice | Denied by the same centralized policy |
| Authorized support workflow | Allowed only through explicit, auditable privilege |
Supporting record
| ID | Severity | Finding | Owner |
|---|---|---|---|
| AK-WEB-001 | High | Cross-tenant invoice access | API team |
| AK-AUTH-002 | Medium | Recovery workflow lacks bounded rate limiting | Identity team |
| AK-WEB-003 | Low | Session cookie omits SameSite policy | Platform team |
| AK-INFO-004 | Low | Verbose framework detail in error responses | API team |
Fix AK-WEB-001, add tenant-bound query controls, and review sibling object routes.
Deploy recovery rate limits, centralize authorization policy, and add integration coverage.
Retest every finding, review access logs, and track the remaining hardening work.