/

CVE-2026-111675

Severity:

HIGH RISK

(7.4)

Authentication Bypass (CWE-307) in Course-tencent-cloud

CVE-2026-111675

Deferred

Vulnerability type

Category:

Improper Restriction of Authentication Attempts

CWE:

CWE-307

Impact:

Account Takeover

Severity:

HIGH RISK

(7.4)

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

Course-tencent-cloud through version 2.0.1 does not sufficiently restrict authentication and verification attempts. An unauthenticated attacker who knows a victim's phone number or email address may repeatedly guess a six-digit code and potentially take over the account.

Course-tencent-cloud through version 2.0.1 does not sufficiently restrict authentication and verification attempts. An unauthenticated attacker who knows a victim's phone number or email address may repeatedly guess a six-digit code and potentially take over the account.

Affected context

The vulnerability occurs in password-reset and login-verification workflows that rely on six-digit SMS or email codes. Risk increases when codes remain valid after use, when repeated guesses are not rate-limited, and when attackers can rotate source IP addresses to avoid network-based controls.

The vulnerability occurs in password-reset and login-verification workflows that rely on six-digit SMS or email codes. Risk increases when codes remain valid after use, when repeated guesses are not rate-limited, and when attackers can rotate source IP addresses to avoid network-based controls.

Exploit preconditions

  • Attack surface: Public password-reset and verification endpoints
  • Required access: No authenticated access; knowledge of the victim's phone number or email address may be sufficient
  • Trigger point: Submission of repeated verification-code guesses
  • Why exploitation is possible: Verification codes are not reliably invalidated or protected by effective attempt limits, allowing online brute-force attempts across rotating source addresses
  • Attack surface: Public password-reset and verification endpoints
  • Required access: No authenticated access; knowledge of the victim's phone number or email address may be sufficient
  • Trigger point: Submission of repeated verification-code guesses
  • Why exploitation is possible: Verification codes are not reliably invalidated or protected by effective attempt limits, allowing online brute-force attempts across rotating source addresses

Why this happens

The underlying flaw is insufficient enforcement of authentication-attempt restrictions. The application accepts repeated guesses for a short verification code without consistently expiring the code, limiting attempts, or binding verification activity to a controlled session or context. This maps to CWE-307: Improper Restriction of Excessive Authentication Attempts, because the system does not adequately prevent automated guessing of authentication credentials or tokens.

The underlying flaw is insufficient enforcement of authentication-attempt restrictions. The application accepts repeated guesses for a short verification code without consistently expiring the code, limiting attempts, or binding verification activity to a controlled session or context. This maps to CWE-307: Improper Restriction of Excessive Authentication Attempts, because the system does not adequately prevent automated guessing of authentication credentials or tokens.

Potential impact

  • An attacker may gain access to a victim's account
  • Password-reset protections could be bypassed
  • Personal information and application data may be exposed
  • Attackers could modify account settings or perform actions as the victim
  • Compromised accounts may be used for fraud, abuse, or further intrusion
  • An attacker may gain access to a victim's account
  • Password-reset protections could be bypassed
  • Personal information and application data may be exposed
  • Attackers could modify account settings or perform actions as the victim
  • Compromised accounts may be used for fraud, abuse, or further intrusion

General mitigation guidance

Mitigation generally focuses on making verification tokens short-lived, single-use, and resistant to guessing.

Common defensive patterns include:

  • Enforcing strict per-account, per-token, per-session, and network-aware attempt limits
  • Invalidating codes immediately after successful use, expiration, or excessive failed attempts
  • Applying progressive delays, temporary lockouts, and risk-based challenge controls
  • Binding verification flows to the original reset or login transaction rather than accepting codes in isolation
  • Reducing reliance on source IP addresses alone, since attackers may rotate addresses
  • Avoiding account-enumeration signals and protecting recovery endpoints with consistent responses
  • Applying least privilege to recovery operations and requiring additional verification for sensitive changes

Mitigation generally focuses on making verification tokens short-lived, single-use, and resistant to guessing.

Common defensive patterns include:

  • Enforcing strict per-account, per-token, per-session, and network-aware attempt limits
  • Invalidating codes immediately after successful use, expiration, or excessive failed attempts
  • Applying progressive delays, temporary lockouts, and risk-based challenge controls
  • Binding verification flows to the original reset or login transaction rather than accepting codes in isolation
  • Reducing reliance on source IP addresses alone, since attackers may rotate addresses
  • Avoiding account-enumeration signals and protecting recovery endpoints with consistent responses
  • Applying least privilege to recovery operations and requiring additional verification for sensitive changes

How teams detect issues like this

Detection can combine application testing, code review, and runtime monitoring:

  • Use static analysis to identify verification handlers without counters, expiration checks, or token invalidation
  • Review code for reusable tokens, unlimited retry loops, and controls based only on client-supplied or source-IP data
  • Test password-reset and login-verification endpoints for effective limits across accounts, sessions, devices, and changing IP addresses
  • Monitor repeated failures, unusual geographic or network changes, high-volume code requests, and successful verification after many guesses
  • Enforce API security policies requiring rate limiting, token expiry, single-use semantics, and audit logging
  • Automated security testing and code-review tools may help identify missing authentication-attempt controls

Detection can combine application testing, code review, and runtime monitoring:

  • Use static analysis to identify verification handlers without counters, expiration checks, or token invalidation
  • Review code for reusable tokens, unlimited retry loops, and controls based only on client-supplied or source-IP data
  • Test password-reset and login-verification endpoints for effective limits across accounts, sessions, devices, and changing IP addresses
  • Monitor repeated failures, unusual geographic or network changes, high-volume code requests, and successful verification after many guesses
  • Enforce API security policies requiring rate limiting, token expiry, single-use semantics, and audit logging
  • Automated security testing and code-review tools may help identify missing authentication-attempt controls

Sources

SourceLink
github.comgithub.com/xiaochong0302/course-tencent-cloud/blob/v2.0.1/app/Services/Logic/Account/PasswordReset.php
github.comgithub.com/xiaochong0302/course-tencent-cloud/blob/v2.0.1/app/Services/Verify.php#L27-L73
hackmd.iohackmd.io/@hieuPenguinnn/ctc-verify-code-brute-force-account-takeover
vulncheck.comvulncheck.com/advisories/course-tencent-cloud-through-2.0.1-verification-code-brute-force-account-takeover

Frequently asked

questions

Yes. The affected verification endpoints are reachable remotely, and exploitation may not require an authenticated session.

The attacker generally needs to know a victim's phone number or email address and be able to submit repeated guesses to the relevant reset or verification endpoint.

Use short-lived, single-use verification codes with strong server-side attempt limits, progressive throttling, and invalidation after successful use or excessive failures.

Treat verification codes as authentication secrets, test controls across rotating IP addresses and sessions, monitor anomalous retries, and enforce secure recovery-flow policies during design and code review.

Yes. The affected verification endpoints are reachable remotely, and exploitation may not require an authenticated session.

The attacker generally needs to know a victim's phone number or email address and be able to submit repeated guesses to the relevant reset or verification endpoint.

Use short-lived, single-use verification codes with strong server-side attempt limits, progressive throttling, and invalidation after successful use or excessive failures.

Treat verification codes as authentication secrets, test controls across rotating IP addresses and sessions, monitor anomalous retries, and enforce secure recovery-flow policies during design and code review.

Find out what's already
exploitable in your codebase.