Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend unauthenticated HTTP request to any public endpoint
-
DeliverySupply Accept-Language header up to 1 MiB with underscore separators
-
ExploitBypass CVE-2022-32149 hyphen cap via underscore aliasing
-
ExecutionTrigger O(n²) quadratic parse in ParseAcceptLanguage
-
PersistConsume ~1.5s CPU per request
-
ImpactRepeat concurrently to saturate all server cores
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption 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 vulnerability is exploitable against any Ech0 instance running the default configuration, where internal/i18n.Middleware() is wired on the global gin router without an upstream Accept-Language size filter - this is the standard documented deployment for all 4.x releases. No authentication is required: the middleware executes before any authentication logic on every HTTP request, including the public landing page, public comments feed, and the unauthenticated /api/echo/page endpoint. The only inherent limiting factor is Go's default 1 MiB HTTP header size cap, which bounds - but does not prevent - the per-request CPU amplification. Exploitation is constrained in practice only by network-layer controls such as WAF rules truncating oversized Accept-Language headers or rate-limiting reducing concurrent attack throughput. No non-default configuration, specific deployment mode, or elevated privilege is required. |
| Impact | The CVSS 4.0 score of 8.7 is well-grounded: AV:N/AC:L/AT:N/PR:N/UI:N with VA:H correctly characterises a trivially exploitable, unauthenticated network attack that causes high availability impact. There are no conflicting signals across the available data - the CVE description, CVSS vector, and GHSA advisory all consistently confirm unauthenticated exploitation against default Ech0 deployments with no special prerequisites. EPSS data is absent from the provided intelligence, so exploitation probability is inferred from the attack profile: extremely low effort to execute (a single crafted HTTP request) but constrained in blast radius by Ech0's limited deployment footprint. No CISA KEV listing is present and no independently confirmed public exploit code exists, though the GHSA advisory provides precise technical detail - including the specific '_' bypass of the CVE-2022-32149 guard - that would allow trivial reproduction by any competent attacker. The ~10 MiB/s sustained bandwidth requirement per attacker and the anomalously high CPU utilisation provide modest detection opportunities via traffic and process monitoring. The primary real-world risk reduction factor is Ech0's narrow deployment footprint rather than any inherent exploitation difficulty. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a stream of HTTP GET requests to any public Ech0 endpoint - such as the landing page or /api/echo/page - each carrying an Accept-Language header approaching Go's 1 MiB default limit, composed of underscore-separated pseudo-language tags chosen to bypass the CVE-2022-32149 '-' cap. Each request triggers O(n²) parsing and consumes approximately 1.5 seconds of CPU; ten concurrent attackers sustaining this pattern can fully saturate a ten-core Ech0 host and deny service to all legitimate users. No independently confirmed public exploit code exists, but the GHSA advisory provides precise construction details sufficient for trivial reproduction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
Denial of service in Ech0 before 5.0.1 allows unauthenticated remote attackers to saturate server CPU by exploiting a quadratic-time parsing bypass in the Accept-Language header processing chain. The i18n middleware, active on every HTTP request including unauthenticated public endpoints, forwards the raw header without size filtering to golang.org/x/text/language.ParseAcceptLanguage, where the CVE-2022-32149 mitigation caps '-' separators at 1000 but not '_' separators - which the parser aliases to '-' internally - enabling a single crafted 1 MiB request to consume roughly 1.5 seconds of CPU (~70x amplification). No CISA KEV listing is present and no public exploit code has been independently confirmed, though the GHSA advisory includes end-to-end verification and sufficient technical detail for reproduction.
RemediationAI
The primary fix is upgrading to Ech0 5.0.1 per the CVE description and GHSA advisory; however, the package metadata field 'fixed in: None' indicates the 5.0.1 release had not been confirmed as published at time of analysis - verify release availability at https://github.com/lin-snow/Ech0/releases before scheduling the upgrade. As an immediate and highly effective workaround, configure a reverse proxy or WAF rule to truncate or reject Accept-Language headers exceeding a safe length (256 bytes is sufficient for all legitimate browser clients) before requests reach the Ech0 process; this directly eliminates the amplification vector with no functional impact on normal users. Rate-limiting concurrent requests at the network edge reduces attack throughput but does not eliminate the per-request CPU cost and should be treated as a secondary control. Additional context is available in the VulnCheck advisory at https://www.vulncheck.com/advisories/ech0-before-denial-of-service-via-accept-language.
Affected VersionsENISA
Affected Packages
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: cpe:2.3:a:lin-snow:ech0:*:*:*:*:*:*:*:*) is a Go application built on the gin web framework. Its i18n middleware (internal/i18n.Middleware(), wired globally) constructs a fresh goi18n.Localizer from the raw Accept-Language header on every request by calling go-i18n's NewLocalizer, which in turn invokes golang.org/x/text/language.ParseAcceptLanguage. That function has O(n²) quadratic-time complexity on long lists of malformed language tags. The CVE-2022-32149 partial mitigation (x/text v0.3.8) caps '-' character count at 1000, but the lexer internally converts '_' to '-' before applying the cap - the cap is therefore fully bypassed by a header composed of underscore separators. CWE-400 (Uncontrolled Resource Consumption) describes the root cause: the application fails to bound the computational cost of attacker-controlled input before delivering it to an expensive parser, with Go's own default 1 MiB HTTP header limit serving as the only effective ceiling on input size.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-accessible unauthenticated attack with no complexity prerequisites; impact is pure availability exhaustion with unchanged scope.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Ech0 before 5.0.1 does not impose any size or shape limit on the Accept-Language header processed by its i18n middleware, which runs on every HTTP request. The header is passed unfiltered to go-i18n's NewLocalizer, which internally calls golang.org/x/text/language.ParseAcceptLanguage. The CVE-2022-32149 mitigation in x/text caps '-' characters but not '_' characters, which the parser aliases to '-', allowing quadratic-time parsing to be triggered with a large header (up to Go's default 1 MiB) built from underscore separators. An unauthenticated attacker can send such requests to consume roughly 1.5 seconds of CPU each, and concurrent requests can saturate a multi-core server (denial of service).
Executive ViewAI
Ech0 versions before 5.0.1 are vulnerable to unauthenticated denial-of-service attacks that can be initiated by external attackers without authentication; a single 1 MB request causes approximately 1.5 seconds of CPU saturation (70x amplification), enabling attackers to render services unavailable with minimal resources. While no public exploit has been identified at time of analysis, the vulnerability is easily reproducible per technical documentation, and organizations running exposed Ech0 instances below version 5.0.1 face immediate availability risk. No vendor-released patch is currently available, leaving organizations dependent on interim mitigations.
Interim mitigations pending vendor patch availability: enforce strict request size limits for Accept-Language headers (recommend maximum 10 KB), implement rate limiting to throttle requests per source, deploy WAF rules to detect and block Accept-Language headers with anomalous separator patterns, monitor server CPU utilization for spikes that may indicate attack activity, consider disabling i18n middleware if functionality is not business-critical, and maintain heightened alert status for denial-of-service anomalies.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Persistent authentication bypass in Ech0 (lin-snow's self-hosted lightweight publishing/memo app) before 4.7.3 lets an a
OAuth redirect URI validation in Ech0 through 4.5.6 allows session hijacking via exchange-code theft by exploiting incom
Authorization bypass in Ech0 before 4.5.1 allows any authenticated non-admin user to invoke privileged admin endpoints b
Privilege escalation in Ech0 before 4.4.3 allows an attacker holding an admin's profile:read access token to change the
Server-side request forgery in Ech0 before version 4.7.3 allows authenticated users to pivot through the application ser
Scope enforcement in Ech0 4.3.4 and earlier is opt-in at the route level, meaning privileged admin routes that omit the
Missing administrator authorization on dashboard log endpoints in Ech0 before 4.4.3 allows any authenticated low-privile
Scope enforcement bypass in Ech0's comment panel admin API allows any holder of a valid admin-issued access token - rega
Unauthenticated metric inflation in Ech0 before 4.7.3 allows any remote attacker to arbitrarily increment the fav_count
Unauthenticated remote attackers can increment the fav_count of any echo - including private ones - in Ech0 through 4.5.
Ech0 before version 4.7.3 exposes guest commenter email addresses to unauthenticated remote callers via public comment-l
Unsalted MD5 password hashing in Ech0's `MD5Encrypt` function (`internal/util/crypto/crypto.go`) stores credentials in a
EUVD-2026-65456
GHSA-j8jc-x8v7-x64g
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB