CVE-2026-72917

AnythingLLM: Password recovery accepts one recovery code twice after whitespace normalization

State
Published
Severity
5.9 Medium
Published
Aug 10, 2026
Updated
Aug 12, 2026
Reserved
Aug 10, 2026

Read the record on cve.org

Description

AnythingLLM is an application that turns pieces of content into context that any LLM can use as references during chatting. From 1.0.0 to 1.15.0, AnythingLLM's unauthenticated account-recovery flow in server/utils/PasswordRecovery/index.js uses recoverAccount() to deduplicate the raw recoveryCodes values before trimming them, so one valid code submitted twice with different surrounding whitespace can satisfy the two-code check. Each normalized value can also match the same stored hash instead of consuming a distinct hash. An attacker who knows the target username and one recovery code can call POST /api/system/recover-account in multi-user mode, receive a password-reset token, and use POST /api/system/reset-password to take over the account, including an administrator account.

Scores

CVSSScoreVectorSource
3.15.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:NGitHub_M

Weaknesses

  • CWE-180 Incorrect Behavior Order: Validate Before Canonicalize
  • CWE-287 Improper Authentication

Affected Products

ProductVersions
anything-llmMintplex-Labs
  • Affected versions >= 1.0.0, <= 1.15.0Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.