cloudflare / cloudflare/cloudflared

🐛 header X-Forwarded-For not set correctly for the origin

Open
#1,426 0 comments 1 reaction 0 assignees View on GitHub
Priority: Normal Type: Bug
Dominant language
Go
Stars
15.6k
Forks
1.4k
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**
Using a cf tunnel (public hostname), a wrong value of `X-Forwarded-For` is given to the origin when the original request includes that header.
For example, if the original visitor IP address is `203.0.113.1`, and the `X-Forwarded-For` header is included like: `curl -v -H "X-Forwarded-For: a,b,c,d,e,f,g" https://whoami.example.com`

the origin receives:
```
Cf-Connecting-Ip: 203.0.113.1
X-Forwarded-For: a,b,c,d,e,f,g,203.0.113.1
```

**To Reproduce**
Steps to reproduce the behavior:
docker compose:
```
services:

cloudflared:
container_name: cloudflared
image: cloudflare/cloudflared
command: tunnel --no-autoupdate run
env_file: .env_cloudflare
restart: unless-stopped

whoami:
image: "traefik/whoami"
container_name: "whoami"
restart: unless-stopped
```
setup zero trust tunnel and make curl request like:
`curl -v -H "X-Forwarded-For: a,b,c,d,e,f,g" https://whoami.example.com`

If it's an issue with Cloudflare Tunnel:
4. Tunnel ID : `a449d8a5-0a64-437e-bc33-f9051fbf8452`
5. cloudflared config: TUNNEL_TOKEN env variable with the secret token

**Expected behavior**
the origin should receive: `X-Forwarded-For: , , `
the example should be: `X-Forwarded-For: 203.0.113.1,a,b,c,d,e,f,g`
_(and maybe remove all invalid ip addresses)_

**Environment and versions**
- OS: debian 12
- Architecture: amd64
- Version: `2025.2.0 (Checksum d7e573b235ef4a1cf45d6b837f61094e4a3403c4ef92e1281a8fec3f7f257691)`

**Additional context**
https://developers.cloudflare.com/fundamentals/reference/http-headers/
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.