Skip to content

Guard client IP extraction against spoofed forwarding headers [skip deploy] #no-deploy - #6

Merged
SebastianLopezO merged 1 commit into
mainfrom
security/dependabot/echo-forwarded-headers
Nov 1, 2026
Merged

SebastianLopezO merged 1 commit into
mainfrom
security/dependabot/echo-forwarded-headers

Conversation

@SebastianLopezO

Copy link
Copy Markdown
Member

Caso

  • Origen: Dependabot alerts
    #2 (GHSA-246p-cpwv-v3jq, Rate Limiter Bypass
    via Spoofed X-Forwarded-For Header in Default Configuration
    ) y
    #1 (GHSA-99jh-6h7p-pp36, Reverse Proxy
    Forwards Attacker-Supplied X-Real-IP to Upstream by Default
    ) sobre labstack/echo/v4.
  • Severidad: media. Afecta a Echo 4.0.0–4.16.2 y no hay versión corregida.
  • Análisis: ambas fallas dependen de la configuración por defecto. La API fija su propio e.IPExtractor: conexión
    directa sin proxy, o X-Forwarded-For leído desde la derecha solo cuando la conexión llega de un proxy de confianza
    (TRUST_PROXY y TRUSTED_PROXY_CIDRS). Su limitador de tasa usa c.RealIP(), que pasa por ese extractor, y no usa
    el middleware Proxy de Echo, que es el que reenvía X-Real-IP.

Cambio

  • Prueba de regresión: con X-Forwarded-For y X-Real-IP falsos, la IP del cliente sigue siendo la de la conexión,
    sin proxy y con el proxy activado pero un par público. Si alguien quita el extractor, la prueba falla.

Después de fusionar

  • Las dos alertas se descartan como código vulnerable no usado, con referencia a este PR, hasta que Echo publique
    un arreglo; Dependabot abrirá el PR de actualización cuando exista.

@SebastianLopezO
SebastianLopezO force-pushed the security/dependabot/echo-forwarded-headers branch from 7210bbe to 2f0659b Compare November 1, 2026 03:44
@SebastianLopezO
SebastianLopezO merged commit bd839f1 into main Nov 1, 2026
6 of 7 checks passed
@SebastianLopezO
SebastianLopezO deleted the security/dependabot/echo-forwarded-headers branch November 1, 2026 03:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant