Why is this an issue?
No tracking of visited NS servers. If NS1 returns NS2, NS2 returns NS1, the resolver loops indefinitely (bounded only by depth=15). Forwarding loops between nameservers are undetected.
What is causing it?
// recursive.go:108-175
for depth < 15 {
// Follow the referral chain: check Authority section for the next NS
if nsIP, found := s.findNextNS(resp); found {
// No visited set to detect loops
}
}
How can it be solved?
Track visited NS IPs and detect cycles before recursing.
Category
Severity
Why is this an issue?
No tracking of visited NS servers. If NS1 returns NS2, NS2 returns NS1, the resolver loops indefinitely (bounded only by depth=15). Forwarding loops between nameservers are undetected.
What is causing it?
How can it be solved?
Track visited NS IPs and detect cycles before recursing.
Category
Severity