Skip to content

Commit b5a725c

Browse files
authored
Merge pull request #568 from bugcrowd/v1.18.1-update-various
Informational (P5) Update
2 parents 568c9f8 + 764e313 commit b5a725c

33 files changed

Lines changed: 347 additions & 0 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Guidance
2+
3+
Provide a step-by-step walkthrough with a screenshot on how you exploited the vulnerability. This will speed triage time and result in faster rewards.
4+
5+
Include a screenshot showing the decoded JWT payload with the `iat` and `exp` claims visible. Calculate and state the token lifetime in hours or days. Do not submit tokens belonging to other users. A screenshot from a JWT decoder tool such as `jwt.io` is acceptable as evidence.
6+
7+
Attempt to escalate the broken authentication or session management to perform additional actions (such as an account takeover or CSRF bypass to perform a sensitive action). If this is possible, provide a full Proof of Concept (PoC).
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Recommendation(s)
2+
3+
Broken authentication issues can be remediated by implementing a handful of best practices relating to authentication and session management to ensure secure implementation. These include:
4+
5+
- Reducing the JWT lifetime to the minimum duration required for the application's use case
6+
- Pairing all short-lived access tokens with a refresh token mechanism that allows the client to obtain new access tokens without requiring reauthentication
7+
- Storing refresh tokens securely, rotating them on each use, and making them revocable by the server
8+
- Ensuring that server-side token revocation for logout and password change events is implemented.
9+
10+
The verification logic of the application, as well as all of the above, should be thoroughly tested during the development and QA phases of an application build.
11+
12+
For further information, refer to Open Web Application Security Project (OWASP) guides located at:
13+
14+
- <https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html>
15+
- <https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
JSON Web Tokens (JWTs) are used by the application for session management or API authentication. The application issues JWTs with an excessively long expiration time, meaning a token remains valid for an extended period after it is issued. The long lifetime gives an attacker a larger window to use the stolen token before it expires. This increases the impact of any token compromise by extending the period during which the attacker can impersonate the legitimate user.
2+
3+
**Business Impact**
4+
5+
This vulnerability can lead to reputational damage and indirect financial loss to the company as customers may view the application as insecure.
6+
7+
**Steps to Reproduce**
8+
9+
1. Enable a HTTP interception proxy, such as Burp Suite or OWASP ZAP
10+
1. Use a browser to navigate and perform a login at: {{URL}}
11+
1. Capture the JWT issued in the {{token_location}}
12+
1. Decode the JWT payload at {{jwt_decode_tool}} and examine the `exp` claim
13+
1. Calculate the token lifetime by comparing the `iat` and `exp` values
14+
1. Confirm that the token lifetime is {{token_lifetime}}, which exceeds a reasonable session duration
15+
16+
**Proof of Concept (PoC)**
17+
18+
The screenshot(s) below demonstrate(s) the vulnerability:
19+
>
20+
> {{screenshot}}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Guidance
2+
3+
Provide a step-by-step walkthrough with a screenshot on how you exploited the vulnerability. This will speed triage time and result in faster rewards.
4+
5+
Include a screenshot showing the secret question presented during the account recovery or verification flow. Show that the question is used as a verification factor rather than as supplementary information. Do not attempt to access other users' accounts. Your own account is sufficient to demonstrate the weakness.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Recommendation(s)
2+
3+
Remove secret questions and replace them with stronger verification methods such as email-based or SMS-based verification codes, time-limited password reset tokens, or multi-factor authentication. If a secondary verification step is required, use a one-time code sent to a pre-registered contact method rather than static knowledge-based questions.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
The application uses secret questions (also known as security questions or knowledge-based authentication) as a method for verifying a user's identity during account recovery or sensitive operations. Secret questions weaken the overall security of the application as the answers are often guessable, publicly available through social media, or shared across multiple services. An attacker who can determine or guess the answer to a user's secret question can bypass the intended verification step and gain access to the account recovery flow.
2+
3+
**Business Impact**
4+
5+
This vulnerability can lead to reputational damage and indirect financial loss to the company as customers may view the application as insecure.
6+
7+
**Steps to Reproduce**
8+
9+
1. Use a browser to navigate to: {{URL}}
10+
1. Enter a username and proceed to the account verification step
11+
1. Observe that the application presents a secret question: {{secret_question}}
12+
13+
**Proof of Concept (PoC)**
14+
15+
The screenshot(s) below demonstrate(s) the vulnerability:
16+
>
17+
> {{screenshot}}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Guidance
2+
3+
Provide a step-by-step walkthrough with a screenshot on how you exploited the vulnerability. This will speed triage time and result in faster rewards.
4+
5+
Include a screenshot of the account security settings page showing the absence of any 2FA or multi-factor authentication option.
6+
7+
Attempt to escalate the broken authentication or session management to perform additional actions (such as an account takeover or CSRF bypass to perform a sensitive action). If this is possible, provide a full Proof of Concept (PoC).
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Recommendation(s)
2+
3+
Implement 2FA support, preferably using time-based one-time passwords (TOTP) or hardware security keys (WebAuthn/FIDO2) as as a stronger option. Provide backup recovery codes during enrollment. Enforce 2FA for accounts with administrative privileges and encourage adoption across all user accounts.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
The application does not offer Two-Factor Authentication (2FA) as an option for user accounts. Without 2FA, account security relies only on the strength of the user's password, with no additional verification step to prevent unauthorized access. An attacker who obtains a user's password can access user's accounts, including those with access to sensitive data or administrative functions.
2+
3+
**Business Impact**
4+
5+
This vulnerability can lead to reputational damage and indirect financial loss to the company as customers may view the application as insecure.
6+
7+
8+
**Steps to Reproduce**
9+
10+
1. Use a browser to navigate and log in at: {{URL}}
11+
1. Navigate to the account security settings at {{security_settings_url}}
12+
1. Confirm that no 2FA or multi-factor authentication option is available
13+
14+
**Proof of Concept (PoC)**
15+
16+
The screenshot(s) below demonstrate(s) the vulnerability:
17+
>
18+
> {{screenshot}}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Guidance
2+
3+
Provide a step-by-step walkthrough with a screenshot on how you exploited the vulnerability. This will speed triage time and result in faster rewards.
4+
5+
For a broken authentication or session management vulnerability, please include a simple URL or HTTP payload that can be executed to easily demonstrate and reproduce the issue.
6+
7+
Attempt to escalate the broken authentication or session management to perform additional actions (such as an account takeover or CSRF bypass to perform a sensitive action). If this is possible, provide a full Proof of Concept (PoC).

0 commit comments

Comments
 (0)