api/handler: check if each IP in X-Forwarded-For is *not* in trusted networks before accepting

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id54c1584650fcee64de70d1f99e542c16a6a6964
This commit is contained in:
raf 2026-03-10 08:54:47 +03:00
commit ffa2af62be
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF

View file

@ -262,7 +262,10 @@ func (h *IngestionHandler) extractIP(r *http.Request) string {
for i := len(ips) - 1; i >= 0; i-- {
ip := strings.TrimSpace(ips[i])
if testIP := net.ParseIP(ip); testIP != nil {
return ip
// Only accept this IP if it's NOT from a trusted proxy
if !h.ipInNetworks(ip, h.trustedNetworks) {
return ip
}
}
}
}