Skip to main content

Ech0 CVE-2026-79669

| EUVDEUVD-2026-65445 MEDIUM
Missing Authorization (CWE-862)
2026-08-25 VulnCheck GHSA-vw9j-c9ff-mwf8
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Register or obtain non-admin account
  2. Delivery
    Authenticate and retrieve valid JWT
  3. Exploit
    Send GET /api/system/logs or connect WS /ws/system/logs
  4. Execution
    Receive structured log stream with internal paths and stack traces
  5. Impact
    Use reconnaissance data to plan targeted follow-on attack

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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

Exploitation Conditions

Exploitation requires a valid authenticated session on the target Ech0 instance - any account, including one created via the public registration endpoint, satisfies this requirement since non-admin users are provisioned with IsAdmin: false and IsOwner: false. No special configuration, non-default deployment mode, or elevated privilege is needed beyond basic authentication. The WebSocket endpoint (WS /ws/system/logs) has a marginally lower bar than the HTTP endpoints because WSRouterGroup carries no middleware; only ParseToken validation inside the handler is applied. What limits exploitation is the requirement for a valid JWT: unauthenticated external actors cannot reach the endpoints. Instances with user registration disabled and no compromised credentials are not reachable by external attackers through this specific vector.

Impact

The CVSS 4.0 score of 5.3 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L) accurately captures the real-world risk profile: network-reachable, low complexity, but requiring a valid authenticated session, with only partial confidentiality impact. The vulnerability is not in CISA KEV and no public exploit code is known, limiting immediate opportunistic exploitation. The primary risk is reconnaissance: exposed stack traces, internal file paths, and module names lower the barrier for targeted follow-on attacks against the same instance. No EPSS score was provided in the input data - exploitation probability cannot be quantified from available signals. The WebSocket endpoint (WSRouterGroup) is notably broader in exposure than the HTTP endpoints because it has no middleware at all, relying solely on ParseToken called inside the handler; this means the authorization gap is technically wider for the WS path. Overall, this is a real and easily triggered vulnerability for any registered non-admin user, but its impact ceiling is information disclosure rather than direct system compromise.

Exploit ScenarioDerived

An attacker who registers a non-admin account on an Ech0 instance - or who compromises any low-privilege credential - authenticates to obtain a valid JWT, then issues a GET request to /api/system/logs or connects to the WebSocket endpoint WS /ws/system/logs. The server returns a stream of structured log entries containing internal Go file paths (caller field), module names, error messages, and application state, which the attacker uses to map the internal codebase structure and identify error-prone modules for targeted follow-on exploitation. No public proof-of-concept code is required; the attack is straightforward HTTP/WebSocket interaction with a valid session token.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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

Log endpoint access control in Ech0 before 4.4.3 is broken for any authenticated non-admin user, exposing real-time and historical server logs via three unguarded API endpoints. The router registers GET /api/system/logs, GET /api/system/logs/stream, and WS /ws/system/logs under middleware that validates JWT signatures but never checks role or scope - a pattern inconsistent with every other admin-restricted route in the codebase. Disclosed log data includes internal file paths, error stack traces, Go module names, and structured application state fields that facilitate reconnaissance for follow-on attacks; no public exploit is identified at time of analysis.

RemediationAI

Upgrade Ech0 to version 4.4.3 or later, which is the vendor-released patch as confirmed by the GitHub Security Advisory GHSA-w8jj-cwmc-wgq2 (https://github.com/lin-snow/Ech0/security/advisories/GHSA-w8jj-cwmc-wgq2) and package fix metadata. If an immediate upgrade is not possible, restrict access to the three affected endpoints (GET /api/system/logs, GET /api/system/logs/stream, WS /ws/system/logs) at the reverse-proxy or firewall layer so only trusted admin-sourced IPs can reach them - this trades operational convenience for access control enforcement. As an application-layer workaround, adding RequireScopes(authModel.ScopeAdminSettings) middleware to the dashboard route registrations in internal/router/dashboard.go mirrors the pattern used in settings.go, but this requires a code change and redeployment. Disabling user self-registration (if not required) reduces the pool of potential non-admin attackers, though it does not eliminate the vulnerability for existing non-admin accounts.

Affected VersionsENISA

Ech0 0 <4.4.3

Affected Packages

go github.com/lin-snow/ech0 fix: 4.4.3
euvd ech0 fix: 4.4.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 web application (CPE: cpe:2.3:a:lin-snow:ech0) whose router organizes endpoints into AuthRouterGroup (JWT-validated) and WSRouterGroup (no middleware). JWTAuthMiddleware confirms token validity and sets viewer context but does not enforce any privilege level. Admin-gated routes in settings.go and other modules consistently apply RequireScopes(authModel.ScopeAdminSettings) as an additional middleware layer; the dashboard route file (internal/router/dashboard.go:7-8) omits this for all three log endpoints. The handler (internal/handler/dashboard/dashboard.go:29-62) and service layer (internal/service/dashboard/dashboard.go:21-27) contain zero authorization checks, contrasting with other services that call ensureAdmin() or requireAdmin(). The LogEntry struct (internal/util/log/log.go:78-87) serializes caller file paths, module names, log levels, and arbitrary structured fields directly into JSON responses. CWE-862 (Missing Authorization) is the precise root cause - authentication is present, but the authorization decision is entirely absent for this resource class.

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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network-reachable endpoint requires only a valid low-privilege JWT; no integrity or availability impact, only partial log confidentiality disclosure.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

1
Patch available
Aug 25, 2026 - 13:02 EUVD

DescriptionCVE.org

Ech0 before 4.4.3 lacks authorization checks on system log endpoints allowing any authenticated non-admin user to read and stream all server logs. Attackers can access historical logs and real-time log streams via GET /api/system/logs, GET /api/system/logs/stream, and WS /ws/system/logs to gather reconnaissance data including internal file paths, error stack traces, and application state.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Rare
niche open-source Go app, minimal enterprise 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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-79662 HIGH
8.8 Aug 25

OAuth redirect URI validation in Ech0 through 4.5.6 allows session hijacking via exchange-code theft by exploiting incom

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

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