[Dnsmasq-discuss] [PATCH] Don't loop when a DS reply carries no proof of non-existence

Dominik Derigs dl6er at dl6er.de
Wed Aug 5 17:54:12 UTC 2026


Hi Simon,

DNSSEC together with --rev-server for a private range is currently 
broken on master.

Validating the reverse answer walks the chain of trust down to 
10.in-addr.arpa,
the public resolvers answer that from their local RFC 6303 zone with an
unsigned NXDOMAIN and no NSEC, and dnssec_validate_reply() is left without a
proof of non-existence. It falls back to zone_status(), which for a DS query
asks for the very DS we are resolving, so the frec graph gains a cycle 
and the
query ends as ABANDONED without a log line saying why.

This is a 2.93 regression - 2.91 and 2.92 handle the same config fine, 
my git
bisect landed on cb32170, which dropped the "Empty DS without NSECS -> 
INSECURE"
shortcut. It is also the case 57f0489 meant to cover ("This should just 
work in
all cases now"), and it did in 2.92.

The attached patch restores that shortcut for the self-referential case 
only,
so the CNAME handling from cb32170 stays as it is. Reproducer, with a second
dnsmasq on 127.0.0.1#5454 serving
--ptr-record=99.1.0.10.in-addr.arpa,client.fritz.box:

   dnsmasq -d --port=5453 --no-resolv --bogus-priv --dnssec 
--log-queries=extra \
--trust-anchor=.,20326,8,2,E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D 
\
     --rev-server=10.0.1.0/24,127.0.0.1#5454 --server=9.9.9.10

   dig -p 5453 @127.0.0.1 PTR 99.1.0.10.in-addr.arpa

Signed zones still validate, dnssec-failed.org still comes back BOGUS.

Best regards,
DL6ER
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Don-t-loop-when-a-DS-reply-carries-no-proof-of-non-e.patch
Type: text/x-patch
Size: 2590 bytes
Desc: not available
URL: <http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20260805/f010eb94/attachment.bin>


More information about the Dnsmasq-discuss mailing list