Password Reset User Enumeration via Response Differences
password-reset-enum is a medium severity check in the
web category, written in python.
Its source is templates/web/session/password-reset-enum.py in
cert-x-gen-templates.
What it checks
Section titled “What it checks”Tests whether the password reset flow leaks valid email addresses through differing HTTP status codes, response bodies, response times, or error messages between existing and non-existing accounts.
Header
Section titled “Header”| Field | Value |
|---|---|
| Id | password-reset-enum |
| Severity | medium |
| Language | python |
| Category | web |
| Author | BugB Security Team |
| Template version | 1.0.0 |
| Confidence | 80 |
| CVSS | 5.3 |
| Weakness | CWE-204 |
| Tags | user-enumeration, password-reset, information-disclosure, owasp-a02, timing-attack, account-oracle |
| Target kind | not recorded |
| Oracle | not recorded |
The file declares @auto_probe, @batch_group, @context_vars, @hypothesis_tags, @vuln_class as well. Those are not tabled above; read the
source for what they carry.
References
Section titled “References”Declared in the header. cxg parses @references and then discards it, and
nothing at scan time reads it, so this is the only place the links a
template cites are surfaced.
- https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/03-Identity_Management_Testing/04-Testing_for_Account_Enumeration_and_Guessable_User_Account
- https://cwe.mitre.org/data/definitions/204.html
Run it
Section titled “Run it”To see what the copy on your machine says about itself, and to confirm it is installed at all:
cxg template info password-reset-enumThe id it prints is the one to pass anywhere a template is selected. See
cxg template for the rest of
the subcommand, Scan a target for running
a scan, and
A match is not a finding for how
to read what comes back.
Related
Section titled “Related”- Template catalog is the whole corpus.
- web is the rest of this category.
- Templates by weakness class groups checks by the defect they look for.
- Contribute a template is the route from a check you needed and could not find to a merged one.

