1 Old Vulnerable API Versions Left Exposed
When APIs are versioned, old versions are often deprecated but not removed. Attackers probe for these old versions which may lack current security controls.
Typical scenario:
GET /api/v2/users/me → Current version with full auth + MFA check
GET /api/v1/users/me → Old version — still works! Missing new auth requirements
GET /api/admin/users → Unversioned legacy route — no auth at all!Common patterns that expose old versions:
- Deprecated /v1 routes left in the router as "backward compatibility"
- Mobile app support keeping old versions alive for older app versions
- Microservice APIs with versioned namespaces that lost auth middleware
- URL rewriting rules that normalize /v1/ and /v2/ to the same backend
Real impact: Uber's 2016 breach was partly facilitated by an old API endpoint that lacked rate limiting present in the current version. Attackers enumerated the older, less-protected API.