Echo: Rate Limiter Bypass via Spoofed X-Forwarded-For Header in Default Configuration
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.1.0
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
The Echo Go web framework (versions 4.0.0 through 5.0.x, as the advisory range is described) is affected when its IP extraction is left at default settings. Remote attackers can spoof the X-Forwarded-For or X-Real-IP headers to evade IP-based rate limiting, which could allow brute-force attempts or excessive request volume to get past throttling controls.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
Echo is a Go web framework. From 4.0.0 until 5.1.0, Context.RealIP falls back to client-supplied X-Forwarded-For or X-Real-IP values when Echo.IPExtractor is unset, and the default RateLimiter uses that result as its client identifier. A remote attacker can rotate arbitrary forwarded-address values to obtain new rate-limit buckets and bypass IP-based throttling used for controls such as brute-force or request-volume protection. This issue is fixed in Echo v5.1.0.
Timeline
- CVE published
- First seen by cve.now
Affected versions
- labstack echo
From 4.0.0 · fixed in 5.1.0
- github.com/labstack/echo/v5Go
fixed in 5.1.0
- github.com/labstack/echo/v4Go
From 4.0.0 · through 4.16.2