🔍 CVE-2026-118653

5.3
CVSS Score
MEDIUM
2026-10-28
2026-11-02 21:17
✅ 완료

🇰🇷 한글 설명

Echo 웹 프레임워크의 4.0.0부터 5.1.0 이전 버전에서는 Echo.IPExtractor가 설정되지 않은 경우 Context.RealIP가 클라이언트가 보낸 X-Forwarded-For 또는 X-Real-IP 값을 신뢰합니다. 기본 RateLimiter가 이 값을 클라이언트 식별자로 사용하기 때문에 공격자가 임의의 전달 주소 값을 바꿔 가며 IP 기반 요청 제한을 우회할 수 있습니다. 이 문제는 Echo v5.1.0에서 수정되었습니다.

💡 쉬운 설명

웹 서버가 요청자의 IP를 확인할 때 요청에 포함된 헤더 값을 그대로 믿는 문제가 있습니다. 공격자는 이 헤더 값을 바꿔서 매번 다른 사용자인 것처럼 보이게 하여 횟수 제한을 피할 수 있습니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

Echo Go 웹 프레임워크 4.0.0 이상 5.1.0 미만 버전 (IPExtractor 미설정 시)

⚔️ 공격 벡터

X-Forwarded-For 또는 X-Real-IP 헤더 값을 요청마다 변경하여 IP 기반 속도 제한 버킷을 계속 새로 얻어 무차별 대입 또는 대량 요청을 수행

🛡️ 대응 방법

Echo를 v5.1.0 이상으로 업그레이드하거나 Echo.IPExtractor를 명시적으로 설정하여 신뢰할 수 있는 프록시 헤더만 사용하도록 구성

🔧 검증 코드

출력된 버전이 v5.1.0 미만이면 취약하며, v5.1.0 이상이면 수정된 버전이고, 출력이 없으면 해당 프로젝트에 Echo 모듈이 없는 것입니다.

Shell / Script
go list -m github.com/labstack/echo/v5 2>/dev/null || grep -E 'labstack/echo' go.mod 2>/dev/null

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

💻 영향받는 소프트웨어

Storage Protect Client