RedTeam Nexus Labs
Module 08 · Lesson 05 // Authentication Testing

account states

Authentication Testing · Bug Bounty

Freereading · 10 min
On this page
LESSON

Overview

Applications have various account states (unverified, active, locked, disabled, deleted), and flaws in how transitions and states are enforced can be valuable findings. This capstone lesson covers account-state testing and consolidates authentication testing.

Learning objectives

  • Explain account states and their transitions.
  • Identify account-state weaknesses to hunt for.
  • Consolidate the authentication-testing module.

Core concept

Account states describe the lifecycle status of an account — for example, unverified (registered but email not confirmed), active, locked (after failed logins), suspended/disabled, or deleted. Applications enforce different access rules per state, and transitions between states (verification, lockout, disabling, deletion) must be handled correctly. Weaknesses arise when state is enforced inconsistently: e.g. an unverified account accessing features it shouldn't, a disabled/deleted account still able to authenticate or retain access, or state checks missing on some paths (like APIs). These are valuable, sometimes high-impact findings.

How it works

Using test accounts in various states, the researcher checks that access rules are correctly enforced per state and across all paths: Can an unverified account access restricted functionality (bypassing verification)? Does a disabled or deleted account lose access everywhere (including APIs and existing sessions), or can it still authenticate/act? Are locked accounts truly restricted? Inconsistent enforcement — a state check present on the web UI but missing on the API, or a deleted account whose session still works — is a flaw. The researcher tests these transitions safely with their own test accounts, documenting weaknesses with evidence and fixes.

Practical example

Testing an in-scope application, the researcher creates a test account, has it disabled, and checks whether it can still act — finding that while the web UI blocks it, the API still accepts its existing session (the disable wasn't enforced everywhere). This inconsistent state enforcement is a valid finding (a disabled account retaining access), documented with a fix (enforce account state on all paths and invalidate sessions on disable). Using their own test accounts across states, the researcher found a real authorization/state flaw responsibly.

Cybersecurity relevance

Account-state flaws — unverified accounts accessing restricted features, disabled/deleted accounts retaining access, inconsistent state enforcement across paths (esp. APIs) — are valuable bug bounty findings, often overlapping with authorization issues and sometimes high-impact. They are frequently missed because they require testing transitions and multiple states, not just a normal login. This consolidates authentication testing — login, reset, MFA, sessions, and account states — a comprehensive, safe (test-account-based, in-scope) assessment of how an application authenticates and manages accounts end to end. For defenders, findings drive consistent state enforcement across all paths.

Common mistakes

  • Only testing normal active accounts, missing state-transition and multi-state flaws.
  • Not checking whether disabled/deleted accounts lose access everywhere (incl. APIs and existing sessions).
  • Overlooking unverified-account access to restricted functionality.

Key takeaways

  • Account states (unverified, active, locked, disabled, deleted) have different access rules; flaws arise from inconsistent enforcement across states, transitions, and paths.
  • Common findings: unverified accounts accessing restricted features, disabled/deleted accounts retaining access, and state checks missing on some paths (e.g. APIs).
  • Test transitions with the researcher's own test accounts across states; this consolidates authentication testing (login, reset, MFA, sessions, account states) into a comprehensive, safe assessment.

Check your understanding

  • Give an example of an account-state weakness and why it matters.
  • Why is testing account-state transitions across all paths (including APIs) important?
FINISH THIS LESSON

Sign in to save your progress.