What is Nostr?
Semisol 👨‍💻
npub1226…grkj
2024-04-10 01:13:02

Semisol 👨‍💻 on Nostr: is your strfry relay crashing? probably because of this exploit: ...

is your strfry relay crashing? probably because of this exploit:

## Why this is happening

This happens due to an invalid real IP header.

You are most likely using `X-Forwarded-For` as the real IP header. Strfry expects the real IP header to contain just an IP, but [the `X-Forwarded-For` header is *a list of IPs*](https://en.wikipedia.org/wiki/X-Forwarded-For), with every proxy adding the IP of where it got the request from.

If a client specifies an X-Forwarded-For header, like `X-Forwarded-For: 1.1.1.1`, your proxy will add the remote IP, like this: `X-Forwarded-For: 1.1.1.1, 127.0.0.1`
When you use `$proxy_add_x_forwarded_for` in Nginx, this is what it is doing: *appending* the remote IP to the header.

Strfry tries parsing `1.1.1.1, 127.0.0.1` as an IP address, fails, and throws an exception.

## How to fix it

If you are using Caddy, just switch to `X-Real-IP`.

If you are using Nginx, you can add a real IP header like so, and switch to using it:
`proxy_set_header X-Real-IP $remote_addr;`

You can also disable the real IP header, but this will cause problems if you use a write filter script or look at the logs.
Author Public Key
npub12262qa4uhw7u8gdwlgmntqtv7aye8vdcmvszkqwgs0zchel6mz7s6cgrkj