Në implementime të ndryshme të protokollit DNSSEC janë identifikuar dy vulnerabilitete që prekin DNS-resolverët BIND, PowerDNS, dnsmasq, Knot Resolver dhe Unbound. Vulgaritetet lejojnë që të arrihet një ndërprerje në shërbim të DNS-resolverëve që kryejnë validimin përmes DNSSEC, për shkak të ngarkesës së lartë në CPU, që pengon përpunimin e kërkesave të tjera. Për të kryer një sulm, mjafton të dërgoni në një DNS-resolver që përdor DNSSEC një kërkesë që çon në referencën e një zone DNS të veçuar në serverin e sulmuesit.
Problemet e identifikuara:
- CVE-2023-50387 (emri në kod KeyTrap) — referenca në zona të veçanta DNS rezulton në një ndërprerje shërbimi për shkak të krijimit të një ngarkese të konsiderueshme në CPU dhe një ekzekutimi të zgjatur të kontrollit DNSSEC. Për të kryer një sulm, është e nevojshme të vendosni në serverin DNS të kontrolluar nga sulmuesi një zonë domeni me parametra të dëmshëm, si dhe të siguroni që një DNS-server rekurziv të referohet në këtë zonë, për të cilën sulmuesi arin ndërprerjen e shërbimit.
Parametrat e dëmshëm konsistojnë në përdorimin për zonën e një kombinimi të çelësave që janë në konflikt me njëri-tjetrin, regjistrimeve RRSET dhe nënshkrimeve digjitale. Përpjekja për verifikim me këta çelësa çon në realizimin e operacioneve të zgjatura dhe intensive për burimet që mund të ngarkojnë plotësisht CPU-në dhe të bllokojnë përpunimin e kërkesave të tjera (p.sh., raportohet se gjatë sulmit ndaj BIND-it, është arritur që të ndalet përpunimi i kërkesave të tjera për 16 orë).
- CVE-2023-50868 (emri në kod NSEC3) — ndërprerje e shërbimit për shkak të kryerjes së llogaritjeve të konsiderueshme gjatë llogaritjes së hash-eve në regjistrimet NSEC3 (Next Secure v3) gjatë përpunimit të përgjigjeve të veçanta DNSSEC. Metoda e sulmit është e ngjashme me vulnerabilitetin e parë, përveç se në serverin DNS të sulmuesit krijohet një grup të veçuar regjistrimesh NSEC3 RRSET.
Këto vulnerabilitete rezultojnë nga përcaktimi në specifikimin e DNSSEC të mundësisë që serveri DNS të dërgojë të gjithë çelësat kriptografikë të disponueshëm, ndërkohë që resolverët duhet të përpunojnë çdo çelës të marrë derisa verifikimi të përfundojë me sukses ose të gjithë çelësat e marrë të jenë verifikuar.
Si masa për të bllokuar vulnerabilitetet në resolverë, është kufizuar numri maksimal i çelësave DNSSEC të implikuar në procesin e ndërtimit të zinxhirit të besimit, dhe numri maksimal i llogaritjeve të hash-eve për NSEC3, si dhe janë kufizuar përpjekjet e përsëritura për verifikim për çdo RRSET (kombinime çelësash dhe nënshkrimesh) dhe çdo përgjigjeje. server.
Vulnerabilitetet janë eliminuar në përditësimet Unbound (1.19.1), PowerDNS Recursor (4.8.6, 4.9.3, 5.0.2), Knot Resolver (5.7.1), dnsmasq (2.90) dhe BIND (9.16.48, 9.18.24 dhe 9.19.21). Statusi i eliminimit të vulnerabiliteteve në distribucionet mund të vlerësohet në këto faqe: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware, NetBSD, FreeBSD.
Në versionet e DNS-serverit BIND 9.16.48, 9.18.24 dhe 9.19.21 janë eliminuar gjithashtu disa vulnerabilitete të tjera:
- CVE-2023-4408 — analiza e mesazheve të mëdha DNS mund të çojë në krijimin e një ngarkese të lartë në CPU.
- CVE-2023-5517 — kërkesa për një zonë të veçantë të prapme mund të shkaktojë një përfundim të papritur për shkak të aktivizimit të kontrollit të pretendimit. Problemi paraqitet vetëm në konfigurime me parametrin "nxdomain-redirect" të aktivizuar.
- CVE-2023-5679 — përcaktimi rekursiv i një hosti mund të çojë në një përfundim të papritur për shkak të aktivizimit të kontrollit të pretendimit në sistemet me mbështetje të aktivizuar për DNS64 dhe "serve-stale" (parametrat, stale-cache-enable dhe stale-answer-enable).
- CVE-2023-6516 — kërkesat rekursive të veçanta mund të çojnë në shterimin e memories së disponueshme për procesin.
Burimi: opennet.ru
