Skip to main content

lin-snow Ech0 CVE-2026-77151

| EUVDEUVD-2026-63578 MEDIUM
Use of a Broken or Risky Cryptographic Algorithm (CWE-327)
2026-08-20 VulDB GHSA-m3r5-hc33-p4wf
6.3
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Obtain Ech0 database file via secondary vulnerability or misconfiguration
  2. Delivery
    Extract unsalted MD5 hashes from users.password column
  3. Exploit
    Run offline rainbow table or hashcat dictionary attack against MD5 hashes
  4. Execution
    Recover plaintext credentials for one or more accounts
  5. Impact
    Authenticate to Ech0 as victim user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Approved algorithm selection
Exploitation Conditions

Exploitation requires prior read access to the Ech0 database (SQLite file or raw database query capability) obtained through a separate vulnerability or misconfiguration - this CVE does not provide that access on its own. The specific condition is that passwords were stored by the MD5Encrypt function as bare, unsalted MD5 digests (confirmed by migration source code comment '历史裸 MD5'), making them vulnerable to offline dictionary and rainbow-table attacks once extracted. Limiting factors: the attacker must independently breach database confidentiality before this weakness is relevant; CVSS AC:H encodes this chained prerequisite; accounts using long, unique, randomly generated passwords offer significantly higher resistance to offline cracking even against unsalted MD5; and fresh Ech0 installations (no legacy password column) are unaffected by the backfill migration entirely.

Impact

The CVSS 4.0 score of 6.3 (AV:N/AC:H/PR:N/UI:N/VC:L) accurately reflects the chained nature of this vulnerability: an attacker cannot exploit the weak hash directly over the network; they must first obtain the hash values through a secondary vector such as database file exposure, path traversal, or backup leak. AC:H encodes this prerequisite correctly. Once hashes are obtained, offline cracking of unsalted MD5 is highly practical - common passwords fall within seconds using precomputed rainbow tables or GPU hashcat runs. The confidentiality impact (VC:L) is arguably conservative: successful cracking yields plaintext credentials that enable full account takeover, though the 'L' rating reflects that not all hashes are easily crackable. No EPSS data was provided in the input. KEV status is absent and no active exploitation has been reported, placing this firmly in the 'patch on schedule' tier absent evidence of a co-occurring data-access breach. For deployments that have already suffered a database compromise, this weakness materially amplifies credential exposure risk.

Exploit ScenarioDerived

An attacker who obtains the Ech0 SQLite database file - for instance through a misconfigured web server exposing the data directory, a separate path traversal vulnerability, or an exfiltrated backup - extracts the users.password column containing unsalted MD5 hashes and submits them to an offline hashcat session against a common wordlist or precomputed rainbow table. Because no per-user salt was applied, a single table lookup cracks matching hashes across all accounts simultaneously. No public proof-of-concept exploit targeting this specific CVE exists; the chained database-access prerequisite is the primary barrier.

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

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

Alert me

AnalysisAIv1 – Aug 20, 2026

Unsalted MD5 password hashing in Ech0's MD5Encrypt function (internal/util/crypto/crypto.go) stores credentials in a format trivially crackable via rainbow tables or GPU-accelerated brute force. Versions 5.4.0 and 5.4.1 are confirmed affected; the migration comment in the fix explicitly labels the stored values as 'historical bare MD5' (历史裸 MD5), confirming no per-user salt was applied. Ech0 5.4.2 resolves this by backfilling existing hashes to a dedicated user_local_auth table and enabling lazy bcrypt upgrade on next login. No public exploit exists and no active exploitation has been confirmed.

RemediationAI

Upgrade to Ech0 5.4.2, confirmed released at https://github.com/lin-snow/Ech0/releases/tag/ech0-5.4.2 (patch commit 9ce19a3b0d0765086a655f45d3a706ec1810404f, PR #315 at https://github.com/lin-snow/Ech0/pull/315). The upgrade automatically executes a database migration that backfills existing MD5 hashes into the user_local_auth table with password_algo='md5' and upgrades them to bcrypt lazily on each user's next successful login - no manual data migration is required. Administrators who cannot upgrade immediately should enforce strong, unique, randomly generated passwords for all accounts to reduce offline cracking success rates, restrict filesystem access to the SQLite database file to the application process user only (mode 600), audit backup storage for exposed database files, and consider forcing a password reset for all users as a precautionary measure. There is no workaround that eliminates the MD5 weakness without upgrading.

Affected VersionsENISA

Ech0 5.4.1
Ech0 5.4.0

Affected Packages

euvd ech0 no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Ech0 (cpe:2.3:a:lin-snow:ech0:*:*:*:*:*:*:*:*) is a self-hosted Go application whose password storage path invokes MD5Encrypt in internal/util/crypto/crypto.go, applying a bare MD5 digest with no per-user salt before persisting credentials. CWE-327 (Use of a Broken or Risky Cryptographic Algorithm) captures this root cause: MD5 was designed for fast data integrity verification, not key derivation, making it orders of magnitude faster to attack than purpose-built algorithms like bcrypt or Argon2. The PR diff (PR #315, commit 9ce19a3b) confirms the mechanism: golang.org/x/crypto is promoted from indirect to direct dependency in go.mod, and a new user_local_auth_backfill_migrator.go runs an INSERT OR IGNORE INTO user_local_auth copying the raw password column values with password_algo='md5', flagging them for bcrypt upgrade on next successful login. The migration code further confirms that fresh installations have no password column and are unaffected, while existing deployments carry the MD5 legacy.

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 (VulDB) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

AV:N retained as the app is network-accessible; AC:H reflects the mandatory secondary breach to obtain hashes; C:L as credential recovery is partial and depends on password strength.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
High
Attack Requirements
None
Privileges Required
None
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

DescriptionCVE.org

A security flaw has been discovered in lin-snow Ech0 up to 5.4.1. Affected by this issue is the function MD5Encrypt of the file internal/util/crypto/crypto.go. Performing a manipulation results in risky cryptographic algorithm. Remote exploitation of the attack is possible. The complexity of an attack is rather high. The exploitation is known to be difficult. Upgrading to version 5.4.2 can resolve this issue. The patch is named 9ce19a3b0d0765086a655f45d3a706ec1810404f. It is recommended to upgrade the affected component.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Rare
niche self-hosted Go app, small community deployment footprint
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.3%
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

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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