Tornet Scooter Mobile App OTP Brute Force via Missing Rate Limiting (CVE-2026-7671)
by Unknown (public disclosure via VulDB) · 2026-07-05
- Severity
- Medium
- CVE
- CVE-2026-7671
- Category
- web
- Affected product
- Tornet Scooter Mobile App backend (/TwoFactor endpoint), Android app v4.75
- Affected versions
- 4.75 (and likely earlier)
- Disclosed
- 2026-07-05
- Patch status
- unpatched
Tags
References
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-05 |
| Author / Researcher | Unknown (public disclosure via VulDB) |
| CVE / Advisory | CVE-2026-7671 |
| Category | web |
| Severity | Medium |
| CVSS Score | Not specified in source |
| Status | PoC |
| Tags | tornet-scooter, otp-bruteforce, missing-rate-limiting, cwe-307, mobile-backend, account-takeover |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Tornet Scooter Mobile App backend (/TwoFactor endpoint), Android app v4.75 |
| Versions Affected | 4.75 (and likely earlier) |
| Language / Platform | Mobile app backend REST API |
| Authentication Required | No (attacker only needs a valid phone number/account identifier to target) |
| Network Access Required | Yes |
Summary
The Tornet Scooter mobile application’s /TwoFactor backend endpoint does not implement rate limiting or account lockout on one-time-password (OTP) verification attempts. Because the OTP is a 4-digit numeric code (0000-9999), an attacker can brute-force the full keyspace remotely in a practical amount of time, allowing account takeover without ever needing the legitimate user’s OTP.
Vulnerability Details
Root Cause
Improper restriction of excessive authentication attempts (CWE-307): the /TwoFactor endpoint accepts unlimited OTP verification requests for a given account/session without throttling, CAPTCHA, or lockout.
Attack Vector
- Trigger an OTP challenge for a target account (e.g. via the normal login/2FA flow).
- Script repeated requests to
/TwoFactorcycling through all 10,000 possible 4-digit codes. - Because there is no rate limit or lockout, the script eventually submits the correct OTP and completes authentication as the victim.
Impact
Full account takeover of any Tornet Scooter user account reachable via the /TwoFactor endpoint, since a 4-digit OTP space is trivially exhaustible without any anti-automation controls.
Environment / Lab Setup
Target: Tornet Scooter Mobile App backend, v4.75 (Android client), /TwoFactor endpoint
Attacker: Any HTTP client capable of scripting repeated requests
Proof of Concept
PoC Script
See
poc.pyin this folder.
| |
poc.py brute-forces the 4-digit OTP space against the /TwoFactor endpoint, demonstrating that no rate limiting or lockout prevents exhaustive guessing of the code.
Detection & Indicators of Compromise
Signs of compromise:
- Bursts of failed OTP verification attempts against the same account within seconds/minutes.
- Sequential or exhaustive numeric OTP guesses (0000, 0001, 0002, …) in request logs.
Remediation
| Action | Detail |
|---|---|
| Primary fix | Implement rate limiting and account lockout on the /TwoFactor endpoint after a small number of failed attempts |
| Interim mitigation | Add CAPTCHA or exponential backoff to OTP verification; increase OTP length/entropy and reduce OTP validity window |
References
Notes
Mirrored from https://github.com/CaginKyr/CVE-2026-7671 on 2026-07-05.
| |