<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 19:50:58 +0000</lastBuildDate>
    <item>
      <title>GHSA-v7pc-74h8-xq2h — Hickory DNS failure to verify self-signed RRSIG for DNSKEYs</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-v7pc-74h8-xq2h</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: hickory-proto&lt;/p&gt;
&lt;p&gt;Summary&lt;/p&gt;
&lt;p&gt;The DNSSEC validation routines treat entire RRsets of DNSKEY records as trusted once they have established trust in only one of the DNSKEYs. As a result, if a zone includes a DNSKEY with a public key that matches a configured trust anchor, all keys in that zone will be trusted to authenticate other records in the zone. There is a second variant of this vulnerability involving DS records, where an authenticated DS record covering one DNSKEY leads to trust in signatures made by an unrelated DNSKEY in the same zone.&lt;/p&gt;
&lt;p&gt;Details&lt;/p&gt;
&lt;p&gt;verify_dnskey_rrset() will return Ok(true) if any record&amp;#39;s public key matches a trust anchor. This results in verify_rrset() returning a Secure proof. This ultimately results in successfully verifying a response containing DNSKEY records. verify_default_rrset() looks up DNSKEY records by calling handle.lookup(), which takes the above code path. There&amp;#39;s a comment following this that says &amp;#34;DNSKEYs were already validated by the inner query in the above lookup&amp;#34;, but this is not the case. To fully verify the whole RRset of DNSKEYs, it would be necessary to check self-signatures by the trusted key over the other keys. Later in verify_default_rrset(), verify_rrset_with_dnskey() is called multiple times with different keys and signatures, and if any call succeeds, then its Proof is returned.&lt;/p&gt;
&lt;p&gt;Similarly, verify_dnskey_rrset() returns Ok(false) if any DNSKEY record is covered by a DS record. A comment says &amp;#34;If all the keys are valid, then we are secure&amp;#34;, bu…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: hickory-proto&lt;/p&gt;
&lt;p&gt;Summary&lt;/p&gt;
&lt;p&gt;The DNSSEC validation routines treat entire RRsets of DNSKEY records as trusted once they have established trust in only one of the DNSKEYs. As a result, if a zone includes a DNSKEY with a public key that matches a configured trust anchor, all keys in that zone will be trusted to authenticate other records in the zone. There is a second variant of this vulnerability involving DS records, where an authenticated DS record covering one DNSKEY leads to trust in signatures made by an unrelated DNSKEY in the same zone.&lt;/p&gt;
&lt;p&gt;Details&lt;/p&gt;
&lt;p&gt;verify_dnskey_rrset() will return Ok(true) if any record&amp;#39;s public key matches a trust anchor. This results in verify_rrset() returning a Secure proof. This ultimately results in successfully verifying a response containing DNSKEY records. verify_default_rrset() looks up DNSKEY records by calling handle.lookup(), which takes the above code path. There&amp;#39;s a comment following this that says &amp;#34;DNSKEYs were already validated by the inner query in the above lookup&amp;#34;, but this is not the case. To fully verify the whole RRset of DNSKEYs, it would be necessary to check self-signatures by the trusted key over the other keys. Later in verify_default_rrset(), verify_rrset_with_dnskey() is called multiple times with different keys and signatures, and if any call succeeds, then its Proof is returned.&lt;/p&gt;
&lt;p&gt;Similarly, verify_dnskey_rrset() returns Ok(false) if any DNSKEY record is covered by a DS record. A comment says &amp;#34;If all the keys are valid, then we are secure&amp;#34;, bu…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-v7pc-74h8-xq2h</guid>
    </item>
  </channel>
</rss>
