]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Unit test for CVE-2026-44687.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 22 Jul 2026 09:55:09 +0000 (11:55 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 22 Jul 2026 09:55:09 +0000 (11:55 +0200)
doc/Changelog
testdata/stop_nxdomain_label.rpl [new file with mode: 0644]

index 975737740b27edce6987549287589f245e7b2cc4..286153833caebac380d2cbb1facf10ad4608480b 100644 (file)
@@ -88,6 +88,7 @@
        - Set the repository to 1.25.3, it continues with the previous
          changes.
        - Unit test for CVE-2026-42955.
+       - Unit test for CVE-2026-44687.
 
 21 July 2026: Wouter
        - Merge #1476 from petrvaganoff: ipsecmod: fix possible deref
diff --git a/testdata/stop_nxdomain_label.rpl b/testdata/stop_nxdomain_label.rpl
new file mode 100644 (file)
index 0000000..b882cf0
--- /dev/null
@@ -0,0 +1,115 @@
+; config options
+server:
+       target-fetch-policy: "0 0 0 0 0"
+       qname-minimisation: "no"
+       harden-below-nxdomain: yes
+       trust-anchor: ". IN DNSKEY 257 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3"
+       val-override-date: "20070916134226"
+       fake-sha1: yes
+       trust-anchor-signaling: no
+       aggressive-nsec: no
+       domain-insecure: "under.example.local"
+
+stub-zone:
+       name: "."
+       stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
+stub-zone:
+       name: "under.example.local"
+       stub-addr: 1.2.3.4
+CONFIG_END
+
+SCENARIO_BEGIN Test stop cache on nxdomain, with stub under intermediate label
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+       ADDRESS 193.0.14.129 
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS        K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET.    IN      A       193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN DNSKEY
+SECTION ANSWER
+.      3600    IN      DNSKEY  257 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30900 (ksk), size = 512b}
+.      3600    IN      RRSIG   DNSKEY 5 0 3600 20070926134150 20070829134150 30900 . BlVcSh8xSgm7ne+XVCJwNHQKjk5kTJgG4Fa3sOSfp3YUjb2YclmVWyIw7XEHl0/C6CN5gdy18idnM6vT6Hy42A== ;{id = 30900}
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NXDOMAIN
+SECTION QUESTION
+example.local. IN A
+SECTION AUTHORITY
+.      86400   IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2010111601 1800 900 604800 86400
+.      86400   IN      RRSIG   SOA 5 0 86400 20070926134150 20070829134150 30900 . bOYbFZZp7vWWC2oxV+kph+YXjoQj2f6QJktlgmzRI7oReFX9jy/LibTPQi/sW0SGHpLaj3G5p4IfIlBibne4DA== ;{id = 30900}
+.      86400   IN      NSEC    ac. NS SOA RRSIG NSEC DNSKEY 
+.      86400   IN      RRSIG   NSEC 5 0 86400 20070926134150 20070829134150 30900 . U+/m5+FmczzkosEx1aTP7MK/F3PpcKWct8CzM1jhjwNe2RlnW7qFe0IH8SLzD/elvxDTQMpJSMlKOhUUdapB8g== ;{id = 30900}
+lk.    86400   IN      NSEC    lr. NS DS RRSIG NSEC 
+lk.    86400   IN      RRSIG   NSEC 5 1 86400 20070926134150 20070829134150 30900 . j6Pw5Eu9vGHDJcckTSWa8YD1b7FV7c/Z8aVkLfJCH+iPcaa40/LSp784+t2PnAAXL8fgriNL6jF/ve1rti3ANQ== ;{id = 30900}
+ENTRY_END
+RANGE_END
+
+; under.example.local
+RANGE_BEGIN 0 100
+       ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+www.under.example.local. IN A
+SECTION ANSWER
+www.under.example.local. IN A 10.20.30.40
+ENTRY_END
+RANGE_END
+
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+example.local. IN A
+ENTRY_END
+
+; recursion happens here.
+STEP 10 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NXDOMAIN
+SECTION QUESTION
+example.local. IN A
+SECTION AUTHORITY
+.      86400   IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2010111601 1800 900 604800 86400
+ENTRY_END
+
+STEP 20 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.under.example.local. IN A
+ENTRY_END
+
+; this query does not get sent to K-ROOT.
+STEP 30 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.under.example.local. IN A
+SECTION ANSWER
+www.under.example.local. IN A 10.20.30.40
+ENTRY_END
+
+SCENARIO_END