Fix #96: private-IP range gaps #105
No reviewers
Labels
No labels
actions
bug
cli
duplicate
enhancement
fork
forum
git storage
help wanted
insights
invalid
issues
moderation
oidc
ownership transfer
packages
pr/merge protection rules
projects
pull requests
question
releases
sponsorships
tags
webhooks
wiki
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crueber/walhub!105
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/issue-96"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #96. Verdict: the gap was REAL — PR #88's shared internal/egress table covered 198.18.0.0/15 + TEST-NET-1/2/3 (+ mapped-v6), but internal/repoimport/url.go:isPrivateIP kept its own hand-rolled list and never delegated to it. Fix: isPrivateIP now denies loopback explicitly (egress allows it for dev webhooks; import sources must never resolve inward) and defers everything else to egress.BlockedIP; unparseable input fails closed. Table tests extended in both packages (incl. mapped-v6 forms for all four listed ranges); docs/features/10 SSRF paragraph + Decisions updated in the same change. Evidence: go test -race green for both packages; cover repoimport 95.7%, egress 97.6%.
isPrivateIPrange gaps (verify against new egress table first) #96isPrivateIPrange gaps (verify against new egress table first) #96isPrivateIPrange gaps (verify against new egress table first) #96