| Titolo | nocodb <= 2026.07.0 Improper Restriction of Excessive Authentication Attempts |
|---|
| Descrizione | NocoDB's self-hosted (CE/OSS) build ships PublicApiLimiterGuard as a pass-through stub that returns true for every request, and binds no ThrottlerGuard at the application level. This guard is the only guard protecting /auth/user/signup, /auth/user/signin, /auth/password/forgot and /auth/token/validate/:tokenId.
Three defects compose into a full account takeover:
Enumeration oracle — the signup endpoint returns HTTP 400 User already exist for a registered address and HTTP 200 (with a JWT) for an unregistered one, giving an attacker a precise, unauthenticated test for account existence.
No authentication rate limiting — the sign-in endpoint accepts unlimited failed attempts with no throttling, no account lockout, and no backoff.
Length-only password policy — validatePassword() enforces only length >= 8, with no complexity requirement and no weak-password blocklist, so passwords such as 12345678 and password are accepted at registration.
An attacker enumerates valid accounts, then brute-forces each at full network speed against passwords that the product itself permits. The resulting JWT grants full API access as the victim. |
|---|
| Fonte | ⚠️ https://github.com/nocodb/nocodb/issues/14688 |
|---|
| Utente | ZAST.AI (UID 87884) |
|---|
| Sottomissione | 29/09/2026 10:56 (26 giorni fa) |
|---|
| Moderazione | 25/10/2026 10:23 (26 days later) |
|---|
| Stato | Accettato |
|---|
| Voce VulDB | 426191 [NocoDB fino a 2026.07.0 /auth/user/signup validatePassword rivelazione di informazioni] |
|---|
| Punti | 20 |
|---|