OWASP / OWASP/www-project-api-security-testing-framework

No test for multi-step business flows (e.g. password-reset-for-another-user)

Open
#103 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Java
Stars
150
Forks
41
Avg merge
2d 5h
Merged PRs (30d)
3

Description

Summary

Found while tracing ASTF's findings against crAPI's documented vulnerabilities. crAPI documents resetting another user's password as a challenge, requiring: (1) discover or guess a victim's email, (2) trigger the password-reset flow for that email, (3) intercept/guess the reset token (crAPI is known for weak/predictable OTP-style reset tokens in some versions), (4) submit a new password with that token.

Root cause

Every existing ASTF test case is a single-request (or single-request-pair, for the new cross-user BOLA check in #87) check: send a request, inspect the response. There's no capability for a multi-step, stateful flow where step N's response feeds step N+1's request — which is exactly the shape of most real password-reset, email-verification, and OTP-based vulnerabilities.

Suggested fix

This is a larger architectural addition, not a small fix, and worth scoping deliberately rather than bolting onto an existing test case:

  • A test case (or small framework capability) that can chain 2-4 requests, where a value from one response (a reset token, a temporary ID, an OTP) is extracted and reused in the next request.
  • For the specific crAPI-style scenario: trigger a password reset for a different user than the current identity, then attempt to guess/brute-force a short numeric OTP or predictable token within a bounded attempt count, and confirm whether the new password takes effect.

Given the scope, this is filed as a distinct architectural enhancement rather than folded into an existing test case — it likely needs its own design discussion about how chained/stateful requests should work across the framework, since other multi-step flows (email verification, OTP-based MFA, etc.) would benefit from the same capability.

Found during a coverage traceback pass cross-referencing ASTF's actual scan output against crAPI's own documented vulnerability list.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing ASTF's existing single-request test cases and the cross-user BOLA check in #87 to understand the current testing model. Then scope a design for chained, stateful requests using the password-reset flow as the example; done means the framework capability and its boundaries are agreed for reset, email-verification, and OTP flows.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend-api-design, security, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.