Skip to main content

Ech0 CVE-2026-79662

| EUVDEUVD-2026-65452 HIGH
URL Redirection to Untrusted Site (Open Redirect) (CWE-601)
2026-08-25 VulnCheck GHSA-m5w8-4879-f4pc
8.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Identify allowlisted OAuth redirect origin
  2. Delivery
    Locate URL-leaking page on that origin
  3. Exploit
    Craft redirect_uri to leaky path and deliver login link to victim
  4. Install
    Victim authenticates with OAuth provider
  5. C2
    Ech0 redirects browser to attacker-chosen path with exchange code in query string
  6. Execute
    Code exfiltrated via Referer header or analytics beacon
  7. Impact
    Redeem code at POST /api/auth/exchange for victim access and refresh tokens

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Redirect URL validation
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the Ech0 instance has OAuth authentication enabled and at least one entry present in the admin-configured redirect URI allowlist. The attacker must identify a page on an allowlisted host that leaks the full page URL to an external party - via a Referer header on outbound links or subresource loads, a JavaScript analytics beacon that captures window.location.href, or a separate open redirect on that host that forwards the query string. The victim must be induced to follow an attacker-crafted OAuth login link, constituting required user interaction (CVSS UI:P). The exchange code is single-use, meaning the attacker must capture and redeem it before the legitimate flow consumes it or it expires. Exploitation is bounded to OAuth-enabled deployments with allowlisted hosts that have one of the described leakage vectors; instances with only local authentication or allowlists restricted to paths with strict outbound referrer suppression present a materially lower attack surface.

Impact

The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N, score 8.8) accurately captures the attack profile: network-accessible, no authentication required, but dependent on two chained conditions - victim interaction and a secondary code-leakage channel on the allowlisted host. The high attack complexity and partial attack requirements (AT:P) meaningfully constrain mass exploitation: the attacker must identify or control a page on an allowlisted origin that leaks the full URL to an external party. There is no EPSS data in the provided intelligence, so statistical exploitation probability cannot be quantified. The vulnerability is not listed in CISA KEV, meaning active exploitation is unconfirmed. However, the GHSA advisory contains full source code evidence and a clear exploitation narrative, significantly lowering the skill barrier for targeted attacks. The subsequent-system high confidentiality and integrity impact (SC:H/SI:H) reflects that stolen tokens grant full impersonation on any resource server that trusts them. This is not a high-CVSS-but-low-real-risk case: the impact of token theft is severe, and the attack is realistic against deployments whose allowlisted hosts carry any analytics, CDN scripts, or open redirects - a common condition in web applications.

Exploit ScenarioDerived

An attacker discovers that https://myapp.example.com/dashboard is in the Ech0 OAuth allowlist and that https://myapp.example.com/news embeds a third-party analytics tag that fires a beacon containing the full page URL. The attacker crafts a login link pointing to https://ech0-instance.example.com/oauth/google/login?redirect_uri=https://myapp.example.com/news, passes the scheme+host check, and emails it to the victim. After the victim authenticates with Google, Ech0 redirects their browser to https://myapp.example.com/news?code=ONE_TIME_CODE; the analytics beacon transmits the full URL to the attacker's collection server. The attacker immediately calls POST /api/auth/exchange with the stolen code and receives the victim's access and refresh tokens, achieving full account takeover. The public advisory provides sufficient technical detail for a skilled attacker to reproduce this without a pre-built POC.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 25, 2026

OAuth redirect URI validation in Ech0 through 4.5.6 allows session hijacking via exchange-code theft by exploiting incomplete allowlist enforcement. The parseAndValidateClientRedirect function at internal/service/auth/auth.go:448 compares only scheme and host of the client-supplied redirect_uri against the admin allowlist, ignoring path, query, and fragment in violation of RFC 6749 §3.1.2. An attacker who induces a victim to follow a crafted OAuth login link can redirect the post-authentication browser to any path on an allowlisted host, exposing the one-time exchange code via Referer headers or analytics, then redeem it at POST /api/auth/exchange for the victim's access and refresh tokens. No public exploit or CISA KEV listing is confirmed at time of analysis; a detailed public advisory (GHSA-p64j-f4x9-wq66) with source code evidence lowers the bar for independent exploitation. Fixed in 4.7.3.

RemediationAI

Upgrade Ech0 to version 4.7.3 or later, which incorporates the fix at commit a7e8b8e84bd1e3db090dfb720f2c6c433356b442 (https://github.com/lin-snow/Ech0/commit/a7e8b8e84bd1e3db090dfb720f2c6c433356b442). Verify the installed version against the official advisory at https://github.com/lin-snow/Ech0/security/advisories/GHSA-p64j-f4x9-wq66 due to the noted versioning discrepancy between the release tag (4.7.3) and Go module pseudo-version. If patching is not immediately possible, tighten the OAuth redirect URI allowlist to paths that do not load third-party analytics scripts, do not emit Referer headers to external origins (e.g., set Referrer-Policy: no-referrer on those pages), and contain no open redirect vulnerabilities - noting that this is a configuration-layer partial mitigation, not a fix for the underlying incomplete URI validation. Disabling OAuth entirely and relying on local authentication eliminates exposure but may be operationally disruptive. None of these workarounds address the root CWE-601 defect; patching is the only complete remediation.

Affected VersionsENISA

Ech0 0 <4.7.3

Affected Packages

go github.com/lin-snow/ech0 fix: 1.4.8-0.20260503040728-a7e8b8e84bd1
euvd ech0 fix: 4.7.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 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

Ech0 is a Go-based web application (go/github.com/lin-snow/Ech0, CPE cpe:2.3:a:lin-snow:ech0:*:*:*:*:*:*:*:*) that implements OAuth-based single sign-on. The root cause is CWE-601 (URL Redirection to Untrusted Site / Open Redirect) applied to OAuth redirect_uri allowlist validation. RFC 6749 §3.1.2 requires servers to enforce exact URI matching including path, query, and fragment; the implementation at auth.go:448 uses strings.EqualFold only on the scheme and host fields after url.Parse, so an allowlist entry of https://myapp.example.com/dashboard silently permits any path under that origin. Critically, no validation occurs at login time (auth.go:141, GetOAuthLoginURL): the raw redirect_uri query parameter is encoded verbatim into a signed state JWT, which travels through the OAuth provider and returns on the callback. The scheme+host gate fires only at callback time (auth.go:372, auth.go:427), after the one-time exchange code has already been committed and is about to be appended to the attacker-controlled path in the 302 Location header.

Know when Ech0 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 8.8 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N
vuln.today AI 8.0 HIGH

Network vector, high complexity due to required secondary leakage channel; no privileges needed; user interaction required; scope changes as stolen tokens grant access to downstream resource servers.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

2
Patch available
Aug 25, 2026 - 13:02 EUVD
CVE Published
Aug 25, 2026 - 11:33 cve.org
HIGH 8.8

DescriptionCVE.org

Ech0 through 4.5.6 contains an OAuth redirect URI validation vulnerability in parseAndValidateClientRedirect (internal/service/auth/auth.go) that compares only the scheme and host of the client-supplied redirect_uri against the admin-configured allowlist, ignoring path, query, and fragment components. The redirect_uri is embedded into the signed state JWT at login time without validation. An attacker can craft a redirect_uri whose host matches an allowed origin but whose path is attacker-influenced; after the OAuth exchange the victim is redirected to that path with a one-time exchange code in the query string. If the code leaks (e.g., via Referer, analytics, or an open redirect on that host), the attacker can trade it at the public POST /api/auth/exchange endpoint for the victim's access and refresh tokens. Fixed in 4.7.3.

Executive ViewAI

Why It Matters

Ech0 authentication systems in versions 4.5.6 and earlier are vulnerable to session hijacking attacks that enable account takeover without detecting the compromise. An attacker can trick users into following a malicious OAuth login link that redirects authentication codes to attacker-controlled systems, then exchange those codes for legitimate access tokens. Organizations relying on vulnerable Ech0 instances face risk of unauthorized user account access and potential data exfiltration through legitimate channels.

Business Impact: High
Compensating Controls

Apply vendor patch: upgrade to Ech0 4.7.3.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Rare
obscure open-source Go project, negligible enterprise deployment footprint
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

More in Ech0

View all
CVE-2026-79664 CRITICAL
9.1 Aug 25

Persistent authentication bypass in Ech0 (lin-snow's self-hosted lightweight publishing/memo app) before 4.7.3 lets an a

CVE-2026-79665 HIGH
8.7 Aug 25

Authorization bypass in Ech0 before 4.5.1 allows any authenticated non-admin user to invoke privileged admin endpoints b

CVE-2026-79658 HIGH
8.7 Aug 25

Denial of service in Ech0 before 5.0.1 allows unauthenticated remote attackers to saturate server CPU by exploiting a qu

CVE-2026-79673 HIGH
8.5 Aug 25

Privilege escalation in Ech0 before 4.4.3 allows an attacker holding an admin's profile:read access token to change the

CVE-2026-79659 HIGH
8.3 Aug 25

Server-side request forgery in Ech0 before version 4.7.3 allows authenticated users to pivot through the application ser

CVE-2026-79667 HIGH
7.2 Aug 25

Scope enforcement in Ech0 4.3.4 and earlier is opt-in at the route level, meaning privileged admin routes that omit the

CVE-2026-79666 HIGH
7.1 Aug 25

Missing administrator authorization on dashboard log endpoints in Ech0 before 4.4.3 allows any authenticated low-privile

CVE-2026-79672 HIGH
7.0 Aug 25

Scope enforcement bypass in Ech0's comment panel admin API allows any holder of a valid admin-issued access token - rega

CVE-2026-79668 MEDIUM
6.9 Aug 25

Unauthenticated metric inflation in Ech0 before 4.7.3 allows any remote attacker to arbitrarily increment the fav_count

CVE-2026-79661 MEDIUM
6.9 Aug 25

Unauthenticated remote attackers can increment the fav_count of any echo - including private ones - in Ech0 through 4.5.

CVE-2026-79660 MEDIUM
6.9 Aug 25

Ech0 before version 4.7.3 exposes guest commenter email addresses to unauthenticated remote callers via public comment-l

CVE-2026-77151 MEDIUM
6.3 Aug 20

Unsalted MD5 password hashing in Ech0's `MD5Encrypt` function (`internal/util/crypto/crypto.go`) stores credentials in a

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