/

CVE-2026-71213

Severity:

CRITICAL RISK

(9.1)

Missing Brute-Force Protection (CWE-307) in Typemill Login

CVE-2026-71213

Received

Vulnerability type

Category:

Improper Restriction of Excessive Authentication Attempts

CWE:

CWE-307

Impact:

Account Takeover

Severity:

CRITICAL RISK

(9.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Typemill's primary login endpoint does not limit failed password attempts when captcha protection is disabled, which is the default configuration. An unauthenticated attacker may submit unlimited guesses against user or administrator accounts without throttling or lockout.

Affected context

The weakness occurs in Typemill's web authentication flow at POST /tm/login, handled by ControllerWebAuth::login(). It is most relevant when captcha is disabled and the primary password-authentication path is exposed to unauthenticated clients; protections associated with the optional secondary email-authcode step do not cover password attempts.

Exploit preconditions

  • Attack surface: Publicly reachable Typemill login endpoint
  • Required access: No authentication is required before submitting login attempts
  • Trigger point: Repeated failed password checks through POST /tm/login
  • Why exploitation is possible: The primary password path lacks rate limiting, failed-attempt accounting, and account lockout when captcha is disabled

Why this happens

The authentication controller does not apply an attempt-management policy to the primary password verification process. Although related counting and lockout logic exists for an optional email-authcode step, that control is not shared with or enforced for password authentication. This maps to CWE-307: Improper Restriction of Excessive Authentication Attempts, because the application permits repeated authentication failures without effective throttling or lockout.

Potential impact

  • An attacker may guess weak or reused passwords
  • User accounts could be taken over
  • Administrator accounts may be compromised
  • Compromised accounts could be used to alter content or application settings
  • Successful attacks could enable further access depending on account privileges

General mitigation guidance

Mitigation generally focuses on enforcing consistent authentication-attempt controls across every login method.

Common defensive patterns include:

  • Apply server-side rate limiting to password authentication by account, source, and other risk-aware signals
  • Track failed attempts for the primary password flow and use bounded, temporary lockouts or progressive delays
  • Keep challenge mechanisms enabled where appropriate, while treating them as an additional control rather than the sole defense
  • Use secure password policies and multi-factor authentication for privileged accounts
  • Avoid relying on client-side controls or controls that apply only to secondary authentication steps
  • Run administrative accounts with least privilege and monitor unusual authentication activity

How teams detect issues like this

Organizations can identify this weakness through:

  • Static analysis and code review checks for login handlers lacking throttling, failure counters, or lockout enforcement
  • Tests that submit repeated invalid credentials and verify bounded response behavior
  • Policy checks requiring brute-force protections on every password-authentication endpoint
  • Monitoring for bursts of failed logins across individual accounts, source addresses, and distributed sources
  • Automated security testing or code-review tools that flag authentication flows without attempt restrictions

Sources

SourceLink
github.comgithub.com/typemill/typemill

Frequently asked

questions

Yes. An unauthenticated attacker may target an exposed Typemill login endpoint over the network, subject to deployment and network-access controls.

The attacker generally needs a valid or guessable account identifier to target, but does not need to authenticate before making password attempts.

Enforce server-side rate limiting, failed-attempt tracking, and temporary lockout or progressive delay on the primary password-authentication path.

Apply a consistent authentication protection policy to every login flow, test repeated-failure behavior, protect privileged accounts with multifactor authentication, and monitor suspicious login patterns.

Find out what's already
exploitable in your codebase.