Dvije ranjivosti identificirane su u raznim implementacijama DNSSEC protokola, koje utječu na DNS resolvere BIND, PowerDNS, dnsmasq, Knot Resolver i Unbound. Ove ranjivosti omogućuju uskraćivanje usluge DNS resolverima koji obavljaju DNSSEC validaciju stvaranjem visokog opterećenja CPU-a, što ometa obradu drugih upita. Za izvođenje napada jednostavno pošaljite upit DNS resolveru s omogućenim DNSSEC-om koji rezultira zahtjevom posebno izrađenoj DNS zoni na napadačevom poslužitelju.
Uočeni problemi:
- CVE-2023-50387 (kodni naziv KeyTrap) – prilikom pristupa posebno izrađenim DNS zonama uzrokuje uskraćivanje usluge zbog značajnog opterećenja CPU-a i dugotrajne DNSSEC validacije. Za izvođenje napada, domenska zona sa zlonamjernim postavkama mora biti smještena na DNS poslužitelju kojim upravlja napadač, a zatim joj mora pristupiti rekurzivni DNS poslužitelj, kojem napadač potom uskraćuje uslugu.
Zlonamjerne postavke uključuju korištenje kombinacije konfliktnih ključeva, RRSET zapisa i digitalnih potpisa za zonu. Pokušaj provjere pomoću ovih ključeva rezultira dugotrajnim operacijama koje zahtijevaju puno resursa, a mogu potpuno preopteretiti CPU i blokirati obradu drugih zahtjeva (na primjer, napad na BIND navodno je zaustavio obradu drugih zahtjeva na 16 sati).
- CVE-2023-50868 (kodni naziv NSEC3) je ranjivost koja uzrokuje uskraćivanje usluge (DSP) zbog značajnog računalnog opterećenja pri izračunavanju hashova u NSEC3 (Next Secure v3) zapisima prilikom obrade posebno izrađenih DNSSEC odgovora. Metoda napada slična je prvoj ranjivosti, osim što se na DNS poslužitelju napadača stvara posebno izrađen skup zapisa NSEC3 RRSET.
Napominje se da je pojava gore navedenih ranjivosti uzrokovana definicijom u DNSSEC specifikaciji o sposobnosti DNS poslužitelja da šalje sve dostupne kriptografske ključeve, dok resolveri moraju obraditi sve primljene ključeve dok provjera ne bude uspješna ili dok se svi primljeni ključevi ne verificiraju.
Kao mjere za blokiranje ranjivosti u resolverima, maksimalni broj DNSSEC ključeva uključenih u proces izgradnje lanca povjerenja i maksimalni broj izračuna hash-a za NSEC3 su ograničeni, a ponovni pokušaji provjere za svaki RRSET (kombinacija ključeva i potpisa) i svaki odgovor su ograničeni. poslužitelja.
Ranjivosti su ispravljene u ažuriranjima za Unbound (1.19.1), PowerDNS Recursor (4.8.6, 4.9.3, 5.0.2), Knot Resolver (5.7.1), dnsmasq (2.90) i BIND (9.16.48, 9.18.24 i 9.19.21). Status ispravaka ranjivosti u tim distribucijama može se procijeniti na ovim stranicama: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware, NetBSD, FreeBSD.
U verzijama BIND DNS poslužitelja 9.16.48, 9.18.24 i 9.19.21 ispravljeno je nekoliko dodatnih ranjivosti:
- CVE-2023-4408 - Raščlanjivanje velikih DNS poruka može rezultirati velikim opterećenjem CPU-a.
- CVE-2023-5517 — Zahtjev za posebno izrađenu obrnutu zonu može rezultirati rušenjem zbog provjere tvrdnje. Problem se javlja samo u konfiguracijama s omogućenom postavkom "nxdomain-redirect".
- CVE-2023-5679 – Rekurzivno razrješavanje hosta može uzrokovati rušenje zbog provjere tvrdnje na sustavima s podrškom za DNS64 i omogućenom opcijom "serve-stale" (postavke, postale-cache-enable i postale-answer-enable).
- CVE-2023-6516 – Posebno izrađeni rekurzivni upiti mogu uzrokovati da procesu ponestane memorije.
Izvor: opennet.ru
