Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify target Zammad account login
-
DeliverySubmit password guess to 2FA initiation endpoint
-
ExploitObserve response revealing password correctness
-
ExecutionIterate without lockout or rate limiting
-
ImpactConfirm valid credentials for reuse
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication Timing-safe comparisons
|
| Exploitation Conditions | Exploitation targets the two-factor authentication login/initiation flow of a network-reachable Zammad instance prior to 7.1.2; the vulnerable endpoint verified the account password and disclosed its correctness before the second factor was evaluated, while being exempt from the normal failed-login lockout and rate limiting. No authentication or user interaction is required (PR:N/UI:N), and default configurations are affected. The practical prerequisite is that the targeted account uses two-factor authentication (so the initiation endpoint is in play); the payoff is greatest against accounts with weak or reused passwords, since the endpoint yields no direct access on its own. The primary limiting factor is that the second authentication factor still blocks actual login - the flaw's concrete impact is unlimited password brute-forcing and credential-validity disclosure, not authentication bypass. |
| Impact | The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, score 6.9) describes a network-reachable, low-complexity, unauthenticated flaw with confidentiality-only impact (VC:L, VI:N, VA:N), which is internally consistent with the description: the two-factor login initiation endpoint validated the password and disclosed whether it was correct before the 2FA check, while bypassing Zammad's normal failed-login lockout and rate limiting. There is no EPSS score, no CISA KEV listing, and no public exploit code referenced - so the signal set is 'no public exploit identified at time of analysis.' Real-world risk is moderate rather than critical: the flaw does not directly grant access (an attacker still needs to pass the second factor), but it turns the 2FA initiation flow into an unlimited password oracle that enables offline-quality brute-forcing of weak or reused passwords and account-existence/credential-validity enumeration. The confidentiality-only rating is appropriate - the vulnerability itself leaks credential-validity information rather than achieving compromise. This is best treated as a meaningful hardening priority for internet-exposed Zammad instances (especially where password policies are weak), not an emergency. The commit confirms the fix adds explicit throttling (3 attempts/minute by login identifier), unifies error responses to a generic 'username or password is incorrect' message to remove the oracle, and stops counting the authenticated password re-check against lockout - corroborating that the root cause was both a missing rate limit and an observable response discrepancy (CWE-203). |
| Exploit ScenarioDerived | A remote unauthenticated attacker targets an internet-facing Zammad instance and repeatedly submits password guesses against the two-factor authentication initiation endpoint for a chosen account. Because the endpoint reveals whether each password is correct before the 2FA step and does not trigger lockout or rate limiting, the attacker brute-forces weak or reused passwords at will and confirms valid credentials. No public exploit code is referenced, but the flaw is trivially scriptable given its low complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 25, 2026
Unlimited password guessing against the two-factor authentication login step in Zammad (all versions before 7.1.2) lets unauthenticated network attackers brute-force account passwords without triggering the platform's normal failed-login lockout or rate limiting, and the endpoint's response discloses whether each guessed password was correct before the second factor is ever evaluated. The concrete impact is credential-validity disclosure and unlimited offline-style online brute forcing rather than authentication bypass, since the second factor still gates actual login; risk is highest for accounts protected by weak or reused passwords. Rated CVSS 4.0 base 6.9 (AV:N/AC:L/AT:N/PR:N/UI:N, confidentiality-only), which is consistent with an independent CVSS 3.1 assessment of AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N; no public exploit code and no confirmed active exploitation (CISA KEV) were identified at time of analysis, and the vendor has released a fix in 7.1.2.
RemediationAI
Upgrade Zammad to 7.1.2, which is the vendor-released patched version fixing this issue; the change set is visible in commit d51254f1c6da13f6ee27636a5c82e53f7e59666b and the advisory is GHSA-6vh5-pfp2-5rmh. If immediate upgrading is not possible, the most effective compensating control is to enforce rate limiting and lockout in front of the vulnerable endpoints - the session two-factor initiation route and the GraphQL twoFactorMethodInitiateAuthentication mutation - using a reverse proxy, WAF, or fail2ban rule keyed on client IP and submitted login identifier, with the trade-off that coarse limits can lock out legitimate users behind shared NAT egress or break automated clients, so thresholds should be tuned (the upstream fix uses roughly 3 attempts per minute per login). In parallel, tighten password policy to reject weak or reused credentials and monitor authentication logs for repeated failed 2FA initiation attempts against the same account, since those are the signature of this brute-force technique. Reducing network exposure by placing Zammad behind a VPN or an IP-allowlist for administrative accounts is a strong interim measure but limits remote helpdesk access for agents and customers. Do not treat disabling two-factor authentication as a fix: it removes the second factor that currently prevents the harvested passwords from producing a full login, so it worsens overall risk even though it changes which endpoint is exposed. Applying the upstream commit directly to a fork is possible ('Upstream fix available (PR/commit); released patched version not independently confirmed' only if the release is not used), but the tagged 7.1.2 release is the supported path.
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
Zammad is a Ruby on Rails web application, and the flaw sits in its authentication stack rather than in any third-party protocol component. CWE-203 (Observable Discrepancy) is the root-cause class: the two-factor initiation flow in app/controllers/sessions_controller.rb and the corresponding GraphQL mutation app/graphql/gql/mutations/two_factor_method_initiate_authentication.rb returned distinguishable outcomes - a generic 'username or password is incorrect' versus a method-specific error about the two-factor authentication method not being enabled or available - allowing an attacker to tell a correct password from an incorrect one before any second factor was validated. Compounding this, that code path in lib/auth.rb (class Auth) and service/user/password_check.rb did not count failures toward the account lockout counter and was not covered by the application's request throttling, so there was no rate limit on credential attempts against the pre-2FA step. The upstream fix adds the Gql::Concerns::HandlesThrottling concern with throttle!(limit: 3, period: 1.minute, by_identifier: login) to the mutation, collapses all failure branches (including Auth::Error::AuthenticationFailed and unexpected exceptions) into the single generic error message, and introduces a skip_login_failed_tracking flag in Auth initialized to false so that only flows already gated behind an authenticated session (such as re-confirming the current password) are exempt from lockout counting - the code comment explicitly notes that exempting an unauthenticated flow would leave it brute-forceable without limit. The affected CPE cpe:2.3:a:zammad:zammad:*:*:*:*:*:*:*:* is an unversioned wildcard, and ENISA EUVD (EUVD-2026-87267) records the affected range as Zammad < 7.1.2.
Know when Zammad 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:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Remote, low-complexity, unauthenticated password oracle with no lockout; impact is limited credential-validity disclosure enabling brute-force (C:L), with no direct integrity or availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Zammad is a web based open source helpdesk/customer support system. Prior to 7.1.2, the two-factor login step let an attacker try unlimited password guesses for any account without triggering Zammad's normal lockout or rate limiting. The response also revealed whether a guess was correct, even before two-factor authentication was checked. This made it possible to brute-force weak or reused passwords. This issue is fixed in version 7.1.2.
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.
Session hijacking in self-hosted Zammad 6.3.0 through 6.5.4 allows remote, unauthenticated attackers to take over a legi
Local privilege escalation in Zammad lets an attacker who already controls the unprivileged 'zammad' service account ele
An issue was discovered in Zammad before 1.0.4, 1.1.x before 1.1.3, and 1.2.x before 1.2.1. Rated critical severity (CVS
An issue was discovered in Zammad before 1.0.4, 1.1.x before 1.1.3, and 1.2.x before 1.2.1, caused by lack of a protecti
Zammad 5.2.0 is vulnerable to privilege escalation. Rated critical severity (CVSS 9.8), this vulnerability is remotely e
An issue was discovered in Zammad before 4.1.1. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo
An issue was discovered in Zammad before 4.1.1. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo
An issue was discovered in Zammad before 3.4.1. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo
An issue was discovered in Zammad before 6.3.0. Rated critical severity (CVSS 9.1), this vulnerability is remotely explo
Zammad's SSO auto-linking logic can be abused to take over any existing local account, including agent and administrator
An access control issue in Zammad v5.0.3 allows attackers to write entries to the CTI caller log without authentication.
An issue was discovered in Zammad before 4.1.1. Rated critical severity (CVSS 9.1), this vulnerability is remotely explo
EUVD-2026-87267
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB