---
id: CVE-2026-72917
title: >-
  AnythingLLM is an application that turns pieces of content into context that
  any LLM can use as references during chatting
summary: >-
  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.…
severity: medium
cvss: 5.9
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-180
  - CWE-287
published: '2026-08-10'
updated: '2026-09-18'
sourceUpdated: '2026-09-18T20:09:01.757'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-72917'
references:
  - url: >-
      https://github.com/Mintplex-Labs/anything-llm/commit/61766d06b77b903f66dc4afd8dffb3a39012db14
    label: security-advisories@github.com
  - url: >-
      https://github.com/Mintplex-Labs/anything-llm/security/advisories/GHSA-vv8w-wg6r-hq56
    label: security-advisories@github.com
tags:
  - nvd
epss: 0.00347
epssPercentile: 0.25568
ingestedAt: '2026-09-18T20:51:25.598Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
