CVE-2026-49870

Snipe-IT: TOTP Brute-Forceable Due to Missing Rate Limiting on `POST /two-factor`

Published Aug 19, 2026 CVSS 3.1 · 5.9 Medium EPSS < 1% KEV · Not listed
Description
Snipe-IT is an IT asset/license management system. Prior to 8.6.1, POST /two-factor has no rate limiting, lockout, or attempt counter, allowing an attacker with valid credentials to submit unlimited TOTP guesses against the three accepted codes created by config/google2fa.php window=1. A successful guess creates a fully authenticated session. When two_factor_enabled is 1, POST /account/profile with two_factor_optin=0 can disable two-factor authentication without OTP reverification, while required mode 2 prevents that opt-out. An administrator can also use POST /api/v1/users/two_factor_reset to clear another user's secret. This issue is fixed in version 8.6.1.

Analysis

AI-generated

Technical impact

The flaw exists in the POST /two‑factor endpoint of Snipe‑IT, which accepts three potential TOTP codes without any limit on the number of attempts. An attacker who already possesses valid user credentials can therefore try unlimited TOTP guesses. Once a correct code is submitted, the system establishes a fully authenticated session, effectively bypassing the intended two‑factor requirement. This issue is a CWE‑770 (Excessive Resource Consumption) vulnerability caused by missing rate limiting. Additionally, the API allows administrators to reset other users’ secrets and the application permits disabling two‑factor authentication without OTP re‑verification when the opt‑out flag is set, further weakening security.

Affected Systems

This issue affects all installations of Snipe‑IT built before version 8.6.1. The affected vendor is grokability, and the product is the Snipe‑IT asset/license management system. Upgrading to release 8.6.1 or newer incorporates a rate‑limiting guard and fixes the opt‑out bypass. No other versions or vendor releases are known to be impacted.

Risk and Exploitability

The CVSS score of 5.9 indicates a medium severity. The EPSS score is not available, and the vulnerability is not listed in CISA KEV, suggesting no confirmed widespread exploitation yet. The likely attack vector is remote over HTTP or HTTPS; however, the attacker must first authenticate with valid credentials to launch the brute‑force attack, implying that compromised or privileged accounts are required. Once successful, an attacker gains full access to the system and can further manipulate two‑factor settings for any user.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Snipe‑IT to version 8.6.1 or later to enable rate limiting and fix the two‑factor disable flaw.
  • If upgrade is delayed, configure rate limiting on the /two‑factor endpoint at the web server or application firewall level to restrict attempts per IP or user.
  • Enforce two‑factor required mode (two_factor_enabled=1 and required mode 2) in the configuration to prevent users from disabling TOTP without re‑verification.
  • Rotate or reset TOTP secrets for all users, and monitor authentication logs for abnormal guessing activity.

Generated by OpenCVE AI on August 20, 2026 at 12:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-mr8g-2mj4-pcq2 Snipe-IT's TOTP is Brute-Forceable Due to Missing Rate Limiting on `POST /two-factor`
History
Type Values Removed Values Added
First Time appeared Snipeitapp
Snipeitapp snipe-it
CPEs cpe:2.3:a:snipeitapp:snipe-it:*:*:*:*:*:*:*:*
Vendors & Products Snipeitapp
Snipeitapp snipe-it
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Grokability
Grokability snipe-it
Vendors & Products Grokability
Grokability snipe-it
Type Values Removed Values Added
Description Snipe-IT is an IT asset/license management system. Prior to 8.6.1, POST /two-factor has no rate limiting, lockout, or attempt counter, allowing an attacker with valid credentials to submit unlimited TOTP guesses against the three accepted codes created by config/google2fa.php window=1. A successful guess creates a fully authenticated session. When two_factor_enabled is 1, POST /account/profile with two_factor_optin=0 can disable two-factor authentication without OTP reverification, while required mode 2 prevents that opt-out. An administrator can also use POST /api/v1/users/two_factor_reset to clear another user's secret. This issue is fixed in version 8.6.1.
Title Snipe-IT: TOTP Brute-Forceable Due to Missing Rate Limiting on `POST /two-factor`
Weaknesses CWE-770
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N'}

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Aug 21, 2026, 9:49 PM
Reserved
Jun 1, 2026, 10:03 PM
Status
Analyzed
Published
Aug 19, 2026, 7:17 PM
Modified
Oct 24, 2026, 4:10 PM