Skip to main content

Ech0 EUVDEUVD-2026-65453

| CVE-2026-79661 MEDIUM
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-25 VulnCheck GHSA-7xcp-744q-324g
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Query public GET /api/echo/page feed
  2. Delivery
    Harvest echo UUIDs without authentication
  3. Exploit
    Issue repeated PUT /api/echo/like/:id requests
  4. Install
    Bypass absent auth and rate-limit gate on PublicRouterGroup
  5. C2
    Trigger unbounded fav_count increments via GORM expression
  6. Execute
    Invalidate four cache keys per request
  7. Impact
    Amplify sustained DB and cache write load

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

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

Exploitation Conditions

The vulnerable condition exists in the default installation of all Ech0 versions through 4.5.6: the PUT /api/echo/like/:id route is registered on PublicRouterGroup at internal/router/echo.go:12 without JWT middleware, rate limiting, or deduplication - this is not a misconfiguration but the default shipped state. No special configuration or elevated access is required; any network-reachable instance is exploitable by anonymous callers. To discover valid target UUIDs, access to the public GET /api/echo/page endpoint is needed, though attackers may also supply known or guessed UUIDs directly. Exploitation is bounded by the absence of data exfiltration (VC:N) - impact is limited to fav_count integrity corruption and database/cache amplification. The like endpoint has no rate-limiting middleware, contrasting with comment creation which enforces 3 requests per 60 seconds and 20 requests per 3600 seconds per IP.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms fully unauthenticated remote exploitation at zero attack complexity, establishing maximum accessibility. The score of 6.9 reflects limited integrity and availability impact (VI:L/VA:L) with no confidentiality breach - accurate for metric corruption and I/O amplification rather than code execution or data exfiltration. No EPSS data was provided for this CVE, so probabilistic exploitation likelihood cannot be quantified. No CISA KEV listing is present, meaning widespread active exploitation is not confirmed. However, the GHSA advisory includes a working Python proof-of-concept, making exploitation trivially scriptable for any attacker with network access. The real-world risk is moderate: the attack requires no skill and no credentials, but impact is bounded to popularity metric manipulation and degraded database/cache performance - not system compromise. The four-cache-invalidation amplification factor per request makes this a viable low-sophistication resource exhaustion primitive against smaller self-hosted deployments, where a high request rate could meaningfully degrade service.

Exploit ScenarioDerived

An unauthenticated attacker queries the public GET /api/echo/page feed to harvest valid echo UUIDs, then scripts repeated PUT /api/echo/like/:id calls against any target echo - including private ones - with no credentials or session token. Each iteration unconditionally increments the fav_count counter and flushes four cache keys; a tight Python loop (as demonstrated in the GHSA proof-of-concept) can sustain this indefinitely, inflating popularity metrics and amplifying write load on the database and cache until performance degrades.

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

Unauthenticated remote attackers can increment the fav_count of any echo - including private ones - in Ech0 through 4.5.6 by issuing repeated PUT /api/echo/like/:id requests with no authentication, rate limiting, or deduplication. Each request triggers a database write and four-key cache invalidation, enabling both persistent metric corruption and amplified load against the database and cache layers. A proof-of-concept is publicly available in the GHSA advisory; no CISA KEV listing exists at time of analysis.

RemediationAI

Upgrade Ech0 to version 4.7.3 or later, which resolves this vulnerability per the GHSA advisory (https://github.com/lin-snow/Ech0/security/advisories/GHSA-pj6q-4vq4-r8cg) and upstream patch commit cecc2c19b590df85d79ea98457faa143130cd620. For Go module consumers, update the dependency to github.com/lin-snow/Ech0 at or above 1.4.8-0.20260503035905-cecc2c19b590. If immediate patching is not feasible, deploying a reverse proxy or WAF rule to require a valid Authorization header or session cookie on PUT requests to /api/echo/like/ is an effective compensating control with no impact on authenticated users. Additionally, applying network-layer rate limiting on this endpoint (e.g., nginx limit_req with a strict burst allowance) mitigates the amplification and partial DoS component, though it does not prevent low-volume unauthenticated metric inflation. Neither workaround substitutes for the patch.

Affected VersionsENISA

Ech0 0 <4.7.3

Affected Packages

go github.com/lin-snow/ech0 fix: 1.4.8-0.20260503035905-cecc2c19b590
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 self-hosted Go web application (github.com/lin-snow/Ech0) using a GORM ORM backend and a layered router structure that distinguishes authenticated (AuthRouterGroup, enforced with JWT middleware) from public (PublicRouterGroup, the bare /api prefix) endpoints. The affected route is registered at internal/router/echo.go:12 as appRouterGroup.PublicRouterGroup.PUT("/echo/like/:id", h.EchoHandler.LikeEcho()), placing it on the unauthenticated group. The EchoRepository.LikeEcho function at internal/repository/echo/echo.go:270 performs only an existence check before issuing an unconditional UPDATE ... SET fav_count = fav_count + 1 via GORM expression - no ownership check, no private-flag gate, no caller deduplication. Additionally, InvalidateEchoCaches clears four cache keys on every invocation, multiplying the backend I/O cost. The root cause maps directly to CWE-770 (Allocation of Resources Without Limits or Throttling): the endpoint consumes unbounded database and cache resources per anonymous request because no throttling middleware (unlike the comment endpoint's 3-per-60s / 20-per-3600s checkRateLimit) is applied.

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

Network-accessible with no authentication or user interaction; scope unchanged; only limited integrity (fav_count inflation) and availability (DB/cache amplification) impact apply, with no confidentiality loss.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/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
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
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 through 4.5.6 registers the PUT /api/echo/like/:id endpoint on the public router group without authentication or rate limiting. Unauthenticated attackers can increment the fav_count counter of any echo (including private echoes) by supplying its UUID, which can be harvested from the public GET /api/echo/page feed. Repeated requests are accepted without deduplication, each triggering a database write and a four-key cache invalidation, allowing attackers to inflate popularity metrics and amplify load on the database and cache. Fixed in 4.7.3.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Rare
niche self-hosted Go microblogging platform, minimal enterprise footprint
Data Quality
5 sources
Confidence: Medium

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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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