CVE-2026-105835
validatedZero produced an exploit or a check.GHSA-vxgr-w3f5-4g4j ↗EUVD-2026-93379 ↗
description
Planka 2.2.0 and 2.2.1 do not limit repeated failed TOTP verification attempts. An attacker who already knows a user's password may repeatedly try authentication codes during a pending login session and potentially gain account access.
mitigation
Enforce strict rate limits for TOTP-verification requests at a reverse proxy or other perimeter control, and monitor for repeated failures. Restrict access to the application to trusted networks where feasible until an upstream patched release is available.
outcome
Check only, differential: the check fires on the vulnerable build and is silent on the patched one.
source signals
Public signals that triggered or updated the pipeline. These are inputs for the deltas above.
- 2026-10-06 12:57Zcve_org: trigger signal, started the run
this entry in the feed
GET /api/v1/feed/CVE-2026-105835
{ "etk_id": "ETK-2026-769", "cve_id": "CVE-2026-105835", "display_id": "CVE-2026-105835", "ghsa_id": "GHSA-vxgr-w3f5-4g4j", "euvd_id": "EUVD-2026-93379", "status": "published", "anchor_state": "anchored", "title": "TOTP verification rate-limit failure in Planka", "summary": "Planka 2.2.0 and 2.2.1 do not limit repeated failed TOTP verification attempts. An attacker who already knows a user's password may repeatedly try authentication codes during a pending login session and potentially gain account access.", "mitigation": "Enforce strict rate limits for TOTP-verification requests at a reverse proxy or other perimeter control, and monitor for repeated failures. Restrict access to the application to trusted networks where feasible until an upstream patched release is available.", "vendor": "planka", "product": "planka", "affected": [ { "affected_notes": [], "affected_ranges": [ ">= 2.2.0, <= 2.2.1" ], "ecosystem": null, "fixed_versions": [], "package_name": "planka", "purl": null } ], "cwes": [ 307 ], "cvss_score": 9.1, "cvss_src": "cna_vendor", "cvss_vector": "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", "epss_score": 0.0032, "epss_percentile": 0.232, "epss_asof": "2026-10-20", "automation": "deterministic", "check": true, "check_confidence_basis": "differential", "exploit": false, "pipeline_minutes": 31.9696328, "t0_at": "2026-10-06T12:57:55.187000+00:00", "signals": { "check": { "at": "2026-10-07T04:40:29.697756+00:00", "days": 0.654566096712963, "is_lower_bound": false, "measured_at": "2026-10-06T12:57:55.187000+00:00", "url": null }, "trigger_signal": { "at": "2026-10-06T12:57:55.187000+00:00", "days": 0, "is_lower_bound": false, "measured_at": "2026-10-06T12:57:55.187000+00:00", "url": "https://www.cve.org/CVERecord?id=CVE-2026-105835" } } }
published 2026-10-06 13:21Z
last change 2026-10-21 18:49Z
Need the technical details behind an entry?
Every entry here shows what we attempted and when. The technical details, the generated exploit that fired it and the evidence behind the verdict are not public. Tell us about your use case and we’ll get back to you about extended API access.