]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolve: unsupported DNSSEC algorithms are considered INSECURE; not BOGUS
authorJacek Migacz <jmigacz@redhat.com>
Wed, 21 Sep 2022 06:23:22 +0000 (08:23 +0200)
committerLuca Boccassi <luca.boccassi@gmail.com>
Fri, 30 Sep 2022 17:46:08 +0000 (18:46 +0100)
Resolves: #19824

src/resolve/resolved-dns-transaction.c

index 4066991ecc8ccfe6641aa0ff02d8d67114908ad9..0212569fb030ef2b61fe7683f59fae246949bdc6 100644 (file)
@@ -3332,10 +3332,19 @@ static int dnssec_validate_records(
                         }
                 }
 
+                /* https://datatracker.ietf.org/doc/html/rfc6840#section-5.2 */
+                if (result == DNSSEC_UNSUPPORTED_ALGORITHM) {
+                        r = dns_answer_move_by_key(validated, &t->answer, rr->key, 0, NULL);
+                        if (r < 0)
+                                return r;
+
+                        manager_dnssec_verdict(t->scope->manager, DNSSEC_INSECURE, rr->key);
+                        return 1;
+                }
+
                 if (IN_SET(result,
                            DNSSEC_MISSING_KEY,
-                           DNSSEC_SIGNATURE_EXPIRED,
-                           DNSSEC_UNSUPPORTED_ALGORITHM)) {
+                           DNSSEC_SIGNATURE_EXPIRED)) {
 
                         r = dns_transaction_dnskey_authenticated(t, rr);
                         if (r < 0 && r != -ENXIO)