CVE-2026-32729

Source
https://cve.org/CVERecord?id=CVE-2026-32729
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-32729.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-32729
Aliases
  • GHSA-v6gf-frxm-567w
Published
2026-03-13T21:41:11.699Z
Modified
2026-04-10T05:42:27.485247Z
Severity
  • 8.1 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N CVSS Calculator
Summary
Runtipi has a TOTP two-factor authentication bypass via unrestricted brute-force on `/api/auth/verify-totp`
Details

Runtipi is a personal homeserver orchestrator. Prior to 4.8.1, The Runtipi /api/auth/verify-totp endpoint does not enforce any rate limiting, attempt counting, or account lockout mechanism. An attacker who has obtained a user's valid credentials (via phishing, credential stuffing, or data breach) can brute-force the 6-digit TOTP code to completely bypass two-factor authentication. The TOTP verification session persists for 24 hours (default cache TTL), providing an excessive window during which the full 1,000,000-code keyspace (000000–999999) can be exhausted. At practical request rates (~500 req/s), the attack completes in approximately 33 minutes in the worst case. This vulnerability is fixed in 4.8.1.

Database specific
{
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-307",
        "CWE-799"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32729.json"
}
References

Affected packages

Git / github.com/runtipi/runtipi

Affected ranges

Type
GIT
Repo
https://github.com/runtipi/runtipi
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed

Affected versions

Other
e2e
nightly
v0.*
v0.1.0
v0.1.1
v0.1.2
v0.1.3
v0.1.4
v0.1.5
v0.2.0
v0.2.1
v0.3.0
v0.3.1
v0.4.0
v0.4.1
v0.4.2
v0.5.0
v0.6.0
v0.6.1
v0.7.0
v0.7.1
v0.7.2
v0.7.3
v0.7.4
v0.8.0
v0.8.1
v1.*
v1.0.0
v1.0.1
v1.1.0
v1.1.1
v1.1.2
v1.2.0
v1.2.1
v1.3.0
v1.4.0
v1.4.1
v1.4.2
v1.5.0
v1.5.1
v1.5.2
v1.6.0
v2.*
v2.0.0
v2.0.0-beta.1
v2.0.1
v2.0.2
v2.0.3
v2.0.4
v2.0.5
v2.0.6
v2.0.7
v2.1.0
v2.2.0
v2.2.1
v2.3.0
v2.3.1
v2.4.0
v2.5.0
v3.*
v3.0.0
v3.0.1
v3.0.2
v3.0.3
v3.1.0
v3.1.1
v3.1.2
v3.1.3
v3.10.0
v3.10.0-beta.1
v3.10.0-beta.2
v3.10.0-beta.3
v3.10.0-beta.4
v3.10.0-beta.9
v3.2.0
v3.3.0
v3.3.2
v3.4.0
v3.4.1
v3.5.0
v3.5.0-beta.2
v3.5.1
v3.5.2
v3.5.3
v3.6.0
v3.6.1
v3.6.2
v3.6.3
v3.6.4
v3.7.0
v3.7.0-alpha.1
v3.7.0-alpha.2
v3.7.0-alpha.3
v3.7.0-alpha.4
v3.7.0-alpha.5
v3.7.0-alpha.6
v3.7.0-alpha.7
v3.7.0-alpha.8
v3.7.0-alpha.9
v3.7.0-beta.1
v3.7.0-beta.10
v3.7.0-beta.2
v3.7.0-beta.3
v3.7.0-beta.4
v3.7.0-beta.5
v3.7.0-beta.6
v3.7.0-beta.7
v3.7.0-beta.8
v3.7.0-beta.9
v3.7.1
v3.7.1-beta.1
v3.7.1-beta.2
v3.7.1-beta.3
v3.7.2
v3.7.2-beta.1
v3.7.3
v3.7.3-beta.1
v3.7.4
v3.7.5
v3.8.0
v3.8.0-beta.1
v3.8.0-beta.2
v3.8.1
v3.8.2
v3.8.2-alpha.1
v3.8.3
v3.8.3-alpha.1
v3.8.3-alpha.2
v3.8.3-beta.1
v3.8.3-beta.2
v3.8.3-beta.3
v3.8.3-beta.4
v3.8.3-beta.5
v3.8.3-beta.6
v3.8.4
v3.8.4-alpha.1
v3.8.4-alpha.2
v3.8.4-alpha.3
v3.8.4-beta.1
v3.9.0
v3.9.0-alpha.1
v3.9.0-alpha.2
v3.9.0-beta.1
v3.9.0-beta.2
v3.9.0-beta.3
v3.9.0-beta.4
v3.9.1
v3.9.2
v3.9.2-beta.1
v3.9.2-beta.2
v3.9.3
v3.9.3-beta.1
v3.9.3-beta.2
v3.9.3-beta.3
v3.9.4
v3.9.4-beta.1
v3.9.4-beta.2
v3.9.4-beta.3
v3.9.4-beta.4
v3.9.4-beta.5
v3.9.5-beta.1
v4.*
v4.0.0
v4.0.0-alpha.1
v4.0.0-alpha.2
v4.0.0-beta.1
v4.0.0-beta.10
v4.0.0-beta.11
v4.0.0-beta.12
v4.0.0-beta.13
v4.0.0-beta.2
v4.0.0-beta.3
v4.0.0-beta.4
v4.0.0-beta.5
v4.0.0-beta.6
v4.0.0-beta.7
v4.0.0-beta.8
v4.0.0-beta.9
v4.0.1
v4.0.2
v4.0.3
v4.0.3-beta.1
v4.1.0
v4.1.0-alpha.1
v4.1.0-alpha.2
v4.1.0-beta.1
v4.1.0-beta.2
v4.1.1
v4.1.1-alpha.1
v4.1.1-alpha.2
v4.1.1-alpha.3
v4.1.2-alpha.1
v4.2.0
v4.2.0-beta.1
v4.2.0-beta.2
v4.2.0-beta.3
v4.2.0-beta.4
v4.2.1
v4.3.0
v4.3.0-beta.1
v4.3.0-beta.2
v4.4.0
v4.4.0-alpha.1
v4.4.0-beta.1
v4.4.0-beta.2
v4.4.0-beta.3
v4.4.0-beta.4
v4.4.0-beta.6
v4.4.0-beta.7
v4.5.0
v4.5.0-beta.1
v4.5.0-beta.2
v4.5.0-beta.3
v4.5.0-beta.4
v4.5.0-beta.5
v4.5.0-beta.6
v4.5.0-beta.7
v4.5.1
v4.5.2
v4.5.2-alpha.1
v4.5.3
v4.5.4
v4.5.5
v4.6.0
v4.6.0-beta.1
v4.6.0-beta.2
v4.6.1
v4.6.2
v4.6.3
v4.6.3-beta.1
v4.6.3-beta.2
v4.6.4
v4.6.5
v4.7.0
v4.7.0-alpha.1
v4.7.0-alpha.2
v4.7.0-beta.1
v4.7.0-beta.2
v4.7.0-beta.3
v4.7.1
v4.7.1-beta.1
v4.7.2
v4.7.2-beta.1
v4.8.0
v4.8.0-beta.1
v4.8.0-beta.2
v4.8.0-beta.3
v4.8.0-beta.4
v4.8.0-beta.5

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-32729.json"