Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain victim's valid password
-
DeliveryRequest and reuse 10-minute pending token
-
ExploitBrute-force six-digit TOTP via verify-totp
-
ExecutionReceive full access token
-
ImpactTake over account bypassing 2FA
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Brute-force prevention, rate limiting
|
| Exploitation Conditions | Requires the attacker to already possess the victim's valid password (the first authentication factor) and the target account to have TOTP two-factor authentication enabled, producing an active ten-minute pending session token. The specific weakness is that POST /api/access-tokens/verify-totp in Planka 2.2.0 through 2.2.1 performs no counting or limiting of incorrect TOTP submissions, so the same pending token can be guessed against for its full lifetime. LIMITING FACTORS: exploitation is impossible without the password; the attacker must exhaust a probabilistic guess of the 1,000,000-value six-digit space within the 10-minute window (AC:H/AT:P); and patched builds close the window entirely by destroying the session after a configurable number of failed attempts and adding per-IP and per-identifier sign-in rate limiting. |
| Impact | The input CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N) scores 9.1 (Critical), driven by network reach and high confidentiality/integrity impact, but the real-world risk is materially lower than that headline because exploitation is gated on a strong precondition: the attacker must already know the victim's password to obtain the ten-minute pending token. In practice this is a second-factor bypass, not an unauthenticated takeover - the weakness (CWE-307, no limit on incorrect TOTP submissions) nullifies 2FA for accounts whose first factor is already compromised. The AC:H / AT:P metrics correctly signal that success is not guaranteed: the attacker must brute-force the ~1,000,000-value six-digit space within the 10-minute token lifetime. No EPSS score was provided, the CVE is NOT in CISA KEV, and no public exploit code was identified, so there is no evidence of active or widespread exploitation. CONFLICT TO NOTE: the input vector uses PR:N, yet the description explicitly requires a known valid password - a form of authentication - so PR:N understates the barrier and inflates the score; this should be read as PR:L (see assessed vector). Net: a genuine and patch-worthy 2FA-bypass priority for internet-facing Planka instances, but closer to high-severity-for-already-breached-passwords than a drive-by critical. |
| Exploit ScenarioDerived | An attacker who has obtained a Planka user's password (via phishing, reuse, or a prior leak) authenticates to receive a ten-minute pending token, then scripts repeated POST requests to /api/access-tokens/verify-totp cycling through six-digit codes until one validates, yielding a full access token and complete account takeover despite 2FA being enabled. Because the endpoint imposed no attempt limit in 2.2.0-2.2.1, the same pending token can be guessed against for its entire lifetime. No public proof-of-concept exploit was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Two-factor authentication bypass through brute force affects PLANKA 2.2.0 through 2.2.1: the POST /api/access-tokens/verify-totp endpoint imposes no limit on incorrect TOTP submissions, so an attacker who already holds a user's password can replay the same ten-minute pending token and guess six-digit codes until one is accepted, receiving a full access token. Exploitation is gated on possessing the victim's password (first factor) and the account having TOTP enabled, and the assessed CVSS 3.1 vector is AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N - materially lower real-world risk than the headline 9.1 (CVSS 4.0) score, which assumes PR:N. There is no public exploit identified at time of analysis and no confirmed active exploitation; the vendor fix is an upstream commit that destroys the pending session after repeated failures and adds per-IP and per-identifier rate limiting.
RemediationAI
Upgrade to a PLANKA build containing the upstream fix for this issue: upstream fix available (commit de4d7688317829e2a0b665fe9dbf39eaf127b6f9, https://github.com/plankanban/planka/commit/de4d7688317829e2a0b665fe9dbf39eaf127b6f9), which destroys the pending session after repeated wrong TOTP codes and enforces per-IP and per-identifier sign-in rate limits; a released patched tag is not independently confirmed, so verify the deployed artifact actually contains this commit before considering the exposure closed. If immediate upgrade is not possible, deploy compensating controls at the reverse proxy or WAF in front of the API: rate-limit or temporarily block POST /api/access-tokens/verify-totp (for example a strict per-source-IP request cap over a short window), accepting the trade-off that legitimate users behind shared NAT or corporate proxies may be throttled, and alert on bursts of failed verify-totp responses from a single source. Because the attack requires the victim's password, prioritize credential hygiene in the interim: force password resets where compromise is suspected, rotate any PLANKA credentials exposed in backups or logs, and consider temporarily disabling TOTP for high-value accounts is not an appropriate mitigation since it removes the second factor entirely. Additional hardening from the same upstream commit worth adopting regardless of this CVE: replace any default or example SECRET_KEY value (the token-signing key - if it remains at the shipped example value, anyone can mint tokens for any account), reject server-side favicon fetches to private, loopback and link-local addresses, encrypt backups with BACKUP_PASSPHRASE since unencrypted archives contain password hashes, sessions, TOTP secrets and SMTP credentials, and ensure revoked tokens are rejected across all asset endpoints. The vendor advisory is mirrored at https://www.vulncheck.com/advisories/planka-2.2.0-through-2.2.1-totp-brute-force-via-verify-totp-endpoint.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
PLANKA is a self-hosted Kanban/project-management application built on Sails.js (Node.js) with a PostgreSQL datastore and JWT-style signed access tokens. Authentication is password-based, with optional TOTP second factor; when a user with TOTP enabled submits correct credentials, the server issues a short-lived (ten-minute) pending session token that must be exchanged at POST /api/access-tokens/verify-totp for a full access token. The root cause is CWE-307 (Improper Restriction of Excessive Authentication Attempts): the verify-totp controller performed no attempt counting, so the same pending token could be presented repeatedly for its entire lifetime. Because TOTP codes are six digits (a 1,000,000-value space, with a small acceptance window around the current step), an attacker with the password and a valid pending token can iterate guesses within the ten-minute window; each attempt is a probabilistic success and requires many requests, which is why the assessed exploitability is AC:H/AT:P rather than trivial. The upstream fix modifies server/api/controllers/access-tokens/verify-totp.js to increment a new pending_token_attempts column atomically in the database (UPDATE session ... RETURNING pending_token_attempts) so concurrent requests cannot double-spend the attempt budget, and to destroy the session once the configurable totpMaxAttempts threshold is exceeded. The same commit hardens the corresponding access-tokens/create.js endpoint with per-IP and per-identifier (hashed) rate limits, and additionally validates session/account status and password age before serving avatars, background images and favicons, blocks server-side favicon fetches to private, loopback and link-local addresses, and warns about missing or default SECRET_KEY values. CPE cpe:2.3:a:planka:planka:*:*:*:*:*:*:*:* identifies the affected PLANKA package.
Know when Planka gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
A known valid password is required to get the pending token so PR:L; success depends on brute-forcing within the 10-minute window so AC:H; the full token enables account takeover (C:H/I:H), with no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
PLANKA 2.2.0 through 2.2.1 fails to limit incorrect TOTP codes submitted to POST /api/access-tokens/verify-totp, allowing attackers to brute force two-factor authentication codes. Attackers who know a user's password can reuse the ten-minute pending token to guess six-digit codes until one succeeds, obtaining a full access token.
Executive ViewAI
A flaw in the PLANKA collaboration platform (versions 2.2.0 and 2.2.1) allows an attacker who has already obtained a user's password to defeat the platform's two-factor authentication by repeatedly guessing the six-digit code, resulting in full account takeover. Organizations running these versions are exposed on any account that has TOTP enabled - precisely the accounts that were hardened in response to prior credential-theft risk - so the impact falls on privileged and security-conscious users first. Because exploitation requires the attacker to already hold a valid password, the realistic risk is lower than the 9.1 headline score suggests, but the consequence of a successful bypass is complete access to the victim's data and permissions.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-93379
GHSA-vxgr-w3f5-4g4j
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB