Skip to main content

PLANKA CVE-2026-105835

| EUVDEUVD-2026-93379 CRITICAL
Improper Restriction of Excessive Authentication Attempts (CWE-307)
2026-10-06 VulnCheck GHSA-vxgr-w3f5-4g4j
9.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain victim's valid password
  2. Delivery
    Request and reuse 10-minute pending token
  3. Exploit
    Brute-force six-digit TOTP via verify-totp
  4. Execution
    Receive full access token
  5. Impact
    Take 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

planka 2.2.0 ≤2.2.1

Affected Packages

euvd planka no fix

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

Vendor (VulnCheck) PRIMARY 9.1 CRITICAL
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
vuln.today AI 6.8 MEDIUM

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.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche self-hosted open-source kanban tool, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy