Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach Coder login endpoint unauthenticated
-
DeliverySubmit login with password 'hunter2'
-
ExploitObserve HTTP 403 vs 401 response
-
ExecutionEnumerate valid accounts and SSO providers
-
ImpactFeed list into credential-stuffing or targeted phishing
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication Timing-safe comparisons
|
| Exploitation Conditions | No special target configuration is required - the oracle works against default deployments of Coder (self-hosted) on any version before 2.29.17, 2.32.7, 2.33.8, or 2.34.2, because userpassword.Compare() substitutes a placeholder hash derived from 'hunter2' whenever a stored password hash is empty. The specific precondition is that a probed account has an empty stored hash (nonexistent users and SSO-only users), which is what the password 'hunter2' matches; the subsequent login-type check then returns 403 (login type disclosed) versus 401 for real password users. Limiting factors: exploitation is unauthenticated and remote but yields only account-existence and authentication-provider enumeration - no authentication bypass, credential recovery, or data access - and the vendor notes the timing component is noisy, so value is confined to reconnaissance for credential-stuffing and phishing. |
| Impact | This is a genuine but modest-severity information-disclosure issue (CWE-203, observable discrepancy), not a high-impact priority. The input CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N) describes a remote, unauthenticated flaw but with elevated attack complexity and a present attack requirement, consistent with the base score of 6.3 (medium) and VC:L / VI:N / VA:N limiting impact to low confidentiality only. No EPSS score, no CISA KEV listing, and no public exploit were provided, so there is no signal of active or widespread exploitation; by the precision rules this is 'no public exploit identified at time of analysis.' The vendor advisory itself explicitly downgrades practical risk, noting the timing side channel is noisy and that the bug 'only reveals whether an account exists' with 'no authentication bypass or data access.' Signals are consistent rather than conflicting: the deterministic 403-vs-401 response-code oracle is reliable, but the overall value to an attacker is limited to account/login-type enumeration that aids downstream credential-stuffing and phishing. One nuance worth noting: the vendor assigned AC:H/AT:P largely because of the noisy timing channel, yet the HTTP 403-vs-401 distinction is itself deterministic, which arguably makes enumeration easier than the complexity metric implies - verify against the fix (PR #26205) behavior. |
| Exploit ScenarioDerived | An unauthenticated attacker scripts login requests against a public Coder instance, submitting the well-known password 'hunter2' for a list of candidate usernames. Accounts with an empty stored hash (nonexistent users and SSO-only users) match the placeholder and return HTTP 403 disclosing login type, while password users return 401, letting the attacker enumerate valid accounts and identify SSO providers. No public exploit code was identified, but the technique is trivial to reproduce from the advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 17, 2026
Coder self-hosted deployments expose an unauthenticated account-enumeration oracle that lets remote attackers distinguish valid SSO-only accounts from nonexistent ones and identify the authentication provider, aiding credential-stuffing and phishing reconnaissance. The flaw affects Coder before 2.29.17, 2.30.0 through 2.32.6, 2.33.0 through 2.33.7, and 2.34.0 through 2.34.1, and is fixed in 2.29.17, 2.32.7, 2.33.8, and 2.34.2. No public exploit code was identified at time of analysis, and the issue yields only information disclosure-no authentication bypass, credential recovery, or data access.
RemediationAI
Upgrade to the vendor-released fixed versions: 2.34.2, 2.33.8, 2.32.7, or 2.29.17 (ESR) per GHSA-8fxq-53rx-ph5f; the fix changes the timing-defense placeholder to a secure random value no supplied password can match (PR #26205, commit 35a7dc8). The vendor lists no workarounds. Until upgrade, compensate by rate-limiting and monitoring the login endpoint for repeated "hunter2" submissions and 403/401 anomalies, restricting network access to the Coder login API where feasible, and enforcing strong MFA/SSO to reduce the value of enumerated accounts; these controls do not eliminate the oracle and can add operational friction or break legitimate integrations.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Coder's userpassword.Compare() function is intended to normalize login timing by comparing against a placeholder hash when an account has no stored password hash. That placeholder was derived from the well-known string "hunter2", so supplying "hunter2" matched accounts with empty hashes-nonexistent users and SSO-only users-and a follow-on login-type check returned HTTP 403 with provider information instead of HTTP 401 for password-backed accounts. This is CWE-203 (observable discrepancy): the response difference leaks account existence and authentication type. The affected Go module is go/github.com/coder/coder/v2; the vendor notes the timing side channel is noisy and practical value is confined to reconnaissance, with no special target configuration required on default self-hosted deployments.
Know when Coder 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:L/VI:N/VA:N/SC:N/SI:N/SA:N
Remote unauthenticated enumeration via a deterministic 403-vs-401 response oracle (AV:N/AC:L/PR:N/UI:N); only low confidentiality (account existence and login type), so C:L, I:N, A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Coder before 2.29.17, 2.30.0 before 2.32.7, 2.33.0 before 2.33.8, and 2.34.0 before 2.34.2 contains a user enumeration vulnerability because userpassword.Compare() substitutes a placeholder hash derived from the string "hunter2" when a stored password hash is empty. Unauthenticated attackers can submit logins with the password "hunter2" and distinguish HTTP 403 from 401 responses to enumerate valid accounts and reveal the authentication provider of SSO-only users.
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.
Coder allows organizations to provision remote development environments via Terraform. Rated high severity (CVSS 8.1), t
Coder allows organizations to provision remote development environments via Terraform. Prior to 2.26.5, 2.27.7, and 2.28
code-server is vulnerable to Inefficient Regular Expression Complexity. Rated high severity (CVSS 7.5), this vulnerabili
Versions of the package code-server before 4.10.1 are vulnerable to Missing Origin Validation in WebSockets handshakes.
Credential theft in Coder (before 2.29.20, 2.33.0 through 2.33.11, 2.34.0 through 2.34.7, and 2.35.0 through 2.35.3) let
Authenticated Coder users who control a modified workspace agent can redirect the control plane's workspace-agent API re
Coder deployments that run workspace agents on Google Compute Engine with GCP instance-identity authentication accept re
Coder allows oragnizations to provision remote development environments via Terraform. Rated high severity (CVSS 8.2), t
IP spoofing in the Coder platform (versions before 2.34.7) allows unauthenticated remote attackers to bypass per-IP rate
Cross-organization file disclosure in Coder's provisioner daemon (versions 2.30.0 through 2.34.7) lets an authenticated
Information disclosure in Coder 2.26.0 through 2.34.7 lets authenticated users who have been granted workspace 'use' acc
Open redirect in Coder workspace-app proxy (versions 2.0.0 through 2.34.7) lets unauthenticated attackers craft links on
EUVD-2026-103300
GHSA-wwfw-5crg-94f6
NVD
CVE.org
EPSS
VulDB
Exploit-DB