Skip to content

Recursive resolver has no forwarding loop detection #239

@poyrazK

Description

@poyrazK

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

  • Small
  • Medium
  • Large

Severity

  • Low
  • Medium
  • High
  • Critical

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions