On 12/3/25 11:04, Peter 'PMc' Much wrote:
! are now seeing the additional work BIND puts in to compensate for
! CVE-2025-40778.

Thank You, that looks ugly. But doesn't tell much.

Briefly: BIND can no longer safely trust glue records for a domain it did not ask about, so it has to make more queries to learn the addresses of name servers. For some of the ridiculously long referral chains out there, this can easily mean 10 or more new outgoing queries.

Sometimes the result can even differ, when it turns out the glue records don't match the rest of the world.

And, actually there is an impact with this ( s/NXDOMAIN/SERVFAIL/ ):

# rndc flush temptest
# host -t NAPTR tel.t-online.de
Host tel.t-online.de not found: 3(NXDOMAIN)

I see similar when I try "dig NAPTR tel.t-online.de. @127.0.0.1" against a freshly started "named", for both 9.20 and 9.18.

My first few attempts (dig invocations) got SERVFAIL, but within three or so repeats, I get the answer. Those symptoms usually means max-recursion-queries, combined with the cache filling with each successive query attempt. BIND keeps the cached answers it gets, even if it SERVFAILs later, so repeating the query gets closer each time.

In my case, I could make it worse/better by disabling BIND's use of IPv6. I don't have IPv6 available at home at the moment, so disabling it let BIND skip a bunch of queries that wouldn't work anyway. Figuring that out counts against max-recursion-queries. So if you have don't have good IPv6 connectivity, make sure you configure BIND accordingly.

As an aside: Now that you're on 9.20, a very useful technique is "delv" with the "+ns" option. This creates a full nameserver instance inside the "delv" process, more-or-less the same way "named" would, and then runs the query using that nameserver. This lets one examine what "named" would do, without the hassle of starting/flushing the daemon, reading the logs, etc. Set the debug level to see more. "-d3" is usually a good start. "-d99" will show you more than you ever wanted to know about how BIND works.

Case in point: "delv -4 -d3 +ns NAPTR tel.t-online.de. | less" (and then hitting G) let me see that it was concluding with SERVFAIL. Working backward from there, I see lots of "exceeded max queries" messages. I was then able to modify the command with "delv -4 -d3 +ns +maxqueries=100 NAPTR tel.t-online.de. | less" and see the proper answer.

  Hope this helps,

  -- Ben

--
Any opinions expressed in this message are those of the author alone.
All information is provided without warranty of any kind.

--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list.

Reply via email to