In verschiedenen Implementierungen des DNSSEC-Protokolls wurden zwei Schwachstellen entdeckt, die die DNS-Resolver BIND, PowerDNS, dnsmasq, Knot Resolver und Unbound betreffen. Diese Schwachstellen ermöglichen eine Denial-of-Service-Attacke auf die DNS-Resolver, die die Validierung mithilfe von DNSSEC durchführen, aufgrund einer hohen CPU-Auslastung, die die Verarbeitung anderer Anfragen stört. Um einen Angriff durchzuführen, reicht es aus, eine Anfrage an einen DNS-Resolver zu senden, der DNSSEC verwendet und zu einer speziell gestalteten DNS-Zone auf dem Server des Angreifers führt.
Festgestellte Probleme:
- CVE-2023-50387 (Codename KeyTrap) – der Zugriff auf speziell gestaltete DNS-Zonen führt zu einem Denial of Service aufgrund einer erheblichen CPU-Last und einer langwierigen Überprüfung von DNSSEC. Um einen Angriff durchzuführen, muss eine Domäne mit schädlichen Einstellungen auf dem vom Angreifer kontrollierten DNS-Server eingerichtet werden, und es muss erreicht werden, dass dieser stromlinienförmige DNS-Server auf diese Zone zugreift, dessen Denial-of-Service der Angreifer herbeiführt.
Schädliche Einstellungen bestehen darin, in der Zone eine Kombination von sich gegenseitig widersprechenden Schlüsseln, RRSET-Einträgen und digitalen Signaturen zu verwenden. Der Versuch, mit diesen Schlüsseln zu prüfen, führt zur Ausführung langwieriger, ressourcenintensiver Operationen, die die CPU vollständig auslasten und die Verarbeitung anderer Anfragen blockieren können (so wird behauptet, dass während eines Angriffs auf BIND die Verarbeitung anderer Anfragen bis zu 16 Stunden gestoppt werden konnte).
- CVE-2023-50868 (Codename NSEC3) – Denial of Service aufgrund signifikanter Berechnungen beim Hashing in NSEC3 (Next Secure v3)-Einträgen bei der Verarbeitung von speziell gestalteten DNSSEC-Antworten. Die Angriffsmethode ähnelt der ersten Schwachstelle, mit dem Unterschied, dass auf dem DNS-Server des Angreifers ein speziell gestaltetes Set von NSEC3 RRSET-Einträgen erstellt wird.
Es wird festgestellt, dass das Auftreten der oben genannten Schwachstellen durch die Definition in der DNSSEC-Spezifikation verursacht wird, die es dem DNS-Server ermöglicht, alle verfügbaren kryptografischen Schlüssel zu senden, während die Resolver alle empfangenen Schlüssel verarbeiten müssen, bis die Überprüfung erfolgreich abgeschlossen ist oder alle empfangenen Schlüssel überprüft wurden.
Um Schwachstellen in Resolvern zu blockieren, ist die maximale Anzahl der in den Prozess zur Erstellung der Vertrauenswürdigkeit eingesetzten DNSSEC-Schlüssel sowie die maximale Anzahl der Hash-Berechnungen für NSEC3 begrenzt. Außerdem sind die Wiederholungsversuche zur Überprüfung für jedes RRSET (Kombination von Schlüsseln und Signaturen) und jede Antwort limitiert. Server.
Schwachstellen wurden in den Updates von Unbound (1.19.1), PowerDNS Recursor (4.8.6, 4.9.3, 5.0.2), Knot Resolver (5.7.1), dnsmasq (2.90) und BIND (9.16.48, 9.18.24 und 9.19.21) behoben. Der Status der Behebung von Schwachstellen in den Distributionen kann auf den folgenden Seiten überprüft werden: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware, NetBSD, FreeBSD.
In den Versionen des DNS-Servers BIND 9.16.48, 9.18.24 und 9.19.21 wurden zusätzlich mehrere Schwachstellen behoben:
- CVE-2023-4408 – die Verarbeitung großer DNS-Nachrichten kann zu einer hohen CPU-Auslastung führen.
- CVE-2023-5517 – eine speziell gestaltete Anfrage an die Rückwärtszone kann aufgrund eines Auslösens der assert-Prüfung zu einem Absturz führen. Das Problem tritt nur in Konfigurationen mit aktivierter Einstellung „nxdomain-redirect“ auf.
- CVE-2023-5679 – die rekursive Auflösung von Hosts kann aufgrund eines Auslösens der assert-Prüfung auf Systemen mit aktivierter Unterstützung für DNS64 und „serve-stale“ (Einstellungen: stale-cache-enable und stale-answer-enable) zu einem Absturz führen.
- CVE-2023-6516 – speziell gestaltete rekursive Anfragen können zu einem Ausschöpfen des verfügbaren Arbeitsspeichers des Prozesses führen.
Quelle: opennet.ru
