CVE-2026-86041 Evasión de la lista de IP permitidas en ezBookkeeping mediante X-Forwarded-For falsificado
ezBookkeeping construye su router Gin con gin.New() sin configurar SetTrustedProxies, por lo que c.ClientIP() confía en un valor X-Forwarded-For falsificado. Un atacante remoto no autenticado puede enviar una dirección permitida para eludir mcp_allowed_remote_ips o api_token_allowed_remote_ips; las acciones protegidas siguen requiriendo un token válido de MCP o API. Se corrige en la versión 1.6.0.
CVSS 4.0
- Probabilidad de explotación · EPSS del 09/110,2 % · percentil 12
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
mayswind ezbookkeeping
>= 0.10.0, < 1.6.0
Qué hacer
- Verificá si usás ezbookkeeping y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 4.0 · 5.3 MEDIA
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Requisitos del ataqueNinguno
- Privilegios requeridosBajos
- Interacción del usuarioNinguna
- Confidencialidad (sistema vulnerable)Ninguna
- Integridad (sistema vulnerable)Baja
- Disponibilidad (sistema vulnerable)Ninguna
- Confidencialidad (sistemas posteriores)Ninguna
- Integridad (sistemas posteriores)Ninguna
- Disponibilidad (sistemas posteriores)Ninguna
Descripción original
ezBookkeeping is an open source, self-hosted personal finance application. From 0.10.0 until 1.6.0, ezBookkeeping constructs its Gin router with gin.New() without configuring SetTrustedProxies, causing c.ClientIP() to trust a spoofed X-Forwarded-For value. An unauthenticated remote attacker can supply an allowlisted address to bypass the mcp_allowed_remote_ips or api_token_allowed_remote_ips gate. A valid MCP or API token remains required for protected actions. When such actions occur, the same spoofed value is stored in Transaction.CreatedIp and the request log, attributing activity to the trusted host instead of the attacker. This issue is fixed in version 1.6.0.
Referencias (3)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.