diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a6fa7f0..29d74e9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +- Minor: Block direct requests to private IPs. (#529) - Breaking: Remove the `/twitchemotes/` endpoints. See [issue 332](https://github.com/Chatterino/api/issues/332) for more information. (#465) - Minor: Use Twitter OG tags if no Twitter credentials are configured. (#522) - Minor: Support `x.com` for tweets. (#527) diff --git a/internal/resolvers/default/link_resolver.go b/internal/resolvers/default/link_resolver.go index 1ef0874d..76c55cfa 100644 --- a/internal/resolvers/default/link_resolver.go +++ b/internal/resolvers/default/link_resolver.go @@ -3,6 +3,7 @@ package defaultresolver import ( "context" "errors" + "net" "net/http" "net/url" "strings" @@ -44,6 +45,11 @@ func (r *LinkResolver) shouldIgnore(u *url.URL) bool { return true } + ip := net.ParseIP(u.Host) + if ip != nil && ip.IsPrivate() { + return true + } + return false }