Skip to content

Commit b4ad173

Browse files
authored
Merge pull request #16 from WebFuzzing/forgotten-authentication-category
Defining forgotten authentication
2 parents 4097948 + ff7afcf commit b4ad173

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/main/java/com/webfuzzing/commons/faults/DefinedFaultCategory.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,17 @@ public enum DefinedFaultCategory implements FaultCategory {
122122
" Still, some heuristics could be used to flag highly suspicious cases." +
123123
" For example, if a user is blocked with a 403 to do a PUT and a PATCH on a resource, it would" +
124124
" be quite suspicious if a DELETE would work just fine on that resource."),
125-
125+
SECURITY_FORGOTTEN_AUTHENTICATION(207, "A Protected Resource Is Accessible Without Providing Any Authentication",
126+
"forgottenAuthentication",
127+
"Endpoints that require authentication must never succeed without it. If the same verb and path return 401/403 " +
128+
"when invalid credentials are used, this shows the endpoint is meant to be protected. But if a call to " +
129+
"the same endpoint with no authentication at all still returns 2xx, this is a forgotten authentication bug. " +
130+
"It means a resource that should be locked is accessible anonymously, exposing or modifying data without any " +
131+
"identity checks. " +
132+
"Detection relies on identifying endpoints that demonstrate protection (i.e., return 401/403 when accessed with " +
133+
"invalid credentials), and then verifying whether the same request, when executed without any authentication, " +
134+
"still results in a successful 2xx response. If this occurs, it reveals a critical lapse in the authentication " +
135+
"mechanism.")
126136
;
127137

128138
private final int code;

src/main/resources/wfc/faults/fault_categories.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,10 @@
7070
"fullDescription" : "BOLA and BFLA are major security vulnerabilities. To avoid users accessing protected resources, authorization mechanisms are usually put in place. However, it can happen that, on some endpoints, these authorization mechanisms are missing or misconfigured by mistake. This can have disastrous consequences, e.g., a regular user deleting all data from all other users. However, access policies could be arbitrarily complex, where some users might validly interact with some resources of other users. A common example is 'administrator' users. Without a formal specification describing in details the access policies in place, it is hard to say automatically if we are in the case of a BOLA/BFLA vulnerability. Still, some heuristics could be used to flag highly suspicious cases. For example, if a user is blocked with a 403 to do a PUT and a PATCH on a resource, it would be quite suspicious if a DELETE would work just fine on that resource.",
7171
"descriptiveName" : "Allowed To Modify Resource That Likely Should Had Been Protected",
7272
"label" : "F206:Allowed To Modify Resource That Likely Should Had Been Protected"
73+
}, {
74+
"code" : 207,
75+
"testCaseLabel" : "forgottenAuthentication",
76+
"fullDescription" : "Endpoints that require authentication must never succeed without it. If the same verb and path return 401/403 when invalid credentials are used, this shows the endpoint is meant to be protected. But if a call to the same endpoint with no authentication at all still returns 2xx, this is a forgotten authentication bug. It means a resource that should be locked is accessible anonymously, exposing or modifying data without any identity checks. Detection relies on identifying endpoints that demonstrate protection (i.e., return 401/403 when accessed with invalid credentials), and then verifying whether the same request, when executed without any authentication, still results in a successful 2xx response. If this occurs, it reveals a critical lapse in the authentication mechanism.",
77+
"descriptiveName" : "A Protected Resource Is Accessible Without Providing Any Authentication",
78+
"label" : "F207:A Protected Resource Is Accessible Without Providing Any Authentication"
7379
} ]

0 commit comments

Comments
 (0)