Eclipse Kura IP Spoofing via X-Forwarded-For Header
CVE Reservation Request
The Eclipse Foundation is a Common Vulnerabilities and Exposures (CVE) Numbering Authority.
Creating this ticket initiates reservation of a CVE ID for the documented vulnerability. The reserved CVE ID will be posted in a comment below, and kept confidential until explicit publication request.
Note
To request CVE publication, please open a CVE publication ticket.
Please fill in the fields below to draft the CVE record.
CVE record information
**Project name: Eclipse Kura
**Project id: iot.kura
**Versions affected: The affected component is org.eclipse.kura:org.eclipse.kura.web2 version range [2.0.600, 2.6.1] and org.eclipse.kura:org.eclipse.kura.rest.provider version range [1.1.0, 1.7.0], which are included in Eclipse Kura version range [5.0.0, 5.6.1]. The issue is resolved in Eclipse Kura 5.6.2.
Common Weakness Enumeration (CWE):
- CWE-348: Use of Less Trusted Source
- CWE-807: Reliance on Untrusted Inputs in a Security Decision
- CWE-345: Insufficient Verification of Data Authenticity
Common Vulnerability Scoring System: {cvss}
CVSS 4.0 Score: 8.2 / High Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
Summary:
Eclipse Kura versions prior to 5.6.2 trust the client-supplied X-Forwarded-For HTTP header as the authoritative source of the client IP address in audit log entries. The org.eclipse.kura.web2 (Web Console) and org.eclipse.kura.rest.provider (REST API) components use this header as the primary IP source when initializing audit context, and org.eclipse.kura.jetty.customizer unconditionally installs Jetty's ForwardedRequestCustomizer on all HTTP/HTTPS connectors, causing HttpServletRequest.getRemoteAddr() to reflect the attacker-controlled header value. An unauthenticated remote attacker can exploit this vulnerability to bypass IP-based brute-force protections — such as fail2ban — by spoofing the logged IP address to a non-routable value, allowing a brute-force attack to proceed undetected, or to cause a denial of service against a third party by injecting a victim's IP address and triggering a ban on that address.
Steps to reproduce:
Running a command as curl -k -v -H "X-Forwarded-For: 6.6.6.6" -u '<username>:<password>' https://172.16.0.1/services/v1/identity/current will result in an entry in the logs in the form 2026-04-24T15:33:29.909+02:00 raspberrypi EclipseKura 662 - [RequestContext@28392 category="AuditLogger" exception="" priority="WARN" thread="qtp1018388934-105"] {rest.method=GET, rest.path=v1/identity/current, entrypoint=RestService, ip=6.6.6.6} Rest - Failure - Service not found presenting the source IP as 6.6.6.6 instead of the actual source IP
Links:
- https://github.com/eclipse-kura/kura/pull/6219
- https://github.com/eclipse-kura/kura/pull/6218
- https://github.com/eclipse-kura/kura/releases/tag/KURA_5.6.2_RELEASE
Credits: Adam N'diaye - HON s.r.l - Company of TUV Rheinland Group