You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|API Specific : Exploitability **3**| Prevalence **3** : Detectability **2**| Technical **2** : Business Specific|
7
+
|Old API versions are usually unpatched and are an easy way to compromise systems without having to fight state of the art security mechanisms that might be in place to protect the most recent API versions. | Outdated documentation makes it more difficult to find and/or fix vulnerabilities. Lack of assets inventory and retire strategies leads to running unpatched systems and leakage of sensitive data. | Attackers may gain access to sensitive data or even takeover the server through old, unpatched API versions connected to the same database.|
8
8
9
9
## Is the API Vulnerable?
10
10
11
+
The API is vulnerable if:
12
+
13
+
* There is no documentation or the existing documentation is not updated.
14
+
* There is no retirement plan for each API version.
15
+
* Hosts inventory is missing or outdated.
16
+
* Old or previous API versions are running unpatched.
17
+
11
18
## Example Attack Scenarios
12
19
13
20
### Scenario #1
14
21
15
-
After redesigning their apps, a local search service left an old API version
16
-
running, unprotected and with access to the user database
17
-
(`api.someservice.com/v1`). While targeting one of the latest released apps an
18
-
attacker got the API address (`api.someservice.com/v2`). Replacing `v2`by `v1`
19
-
in the url gave the attacker access to the old and unprotected API, exposing
20
-
over 100 Million user’s personal identifiable information (PII).
22
+
After redesigning their applications, a local search service left an old API
23
+
version (`api.someservice.com/v1`) running, unprotected and with access to the
24
+
user database. While targeting one of the latest released applications an
25
+
attacker got the API address (`api.someservice.com/v2`). Replacing `v2`with
26
+
`v1`in the URL gave the attacker access to the old and unprotected API,
27
+
exposing the personal identifiable information (PII) of over 100 Million user.
21
28
22
29
## How To Prevent
23
30
31
+
* Document all aspects of your API such as authentication, errors, redirects,
32
+
rate limiting, cross-origin resource sharing (CORS) policy and endpoints,
33
+
including their parameters, requests and responses.
34
+
* Include documentation of your code review practice.
35
+
* Generate documentation automatically by adopting open standards. Include the
0 commit comments