Vážne zraniteľnosti open source softvéru Dnsmasq, ktorý používajú desiatky výrobcov sieťových prvkov
Tím JSOF zverejnil 7 zraniteľností nazvaných DNSpooq. Dnsmasq je open source softvér väčšinou zakomponovaný vo firmvéri sieťových prvkov od všetkých výrobcov. Dnsmasq slúži na preposielanie DNS požiadaviek nadradenému DNS serveru a následnú odpoveď ukladá do medzipamäte DNS, čím zrýchľuje komunikáciu na sieti a predchádza jej zahlcovaniu. Z aktuálne zverejnených 7 zraniteľností sú 4 zraniteľnosti pretečenia medzipamäte a 3 zraniteľnosti umožňujúce otravu záznamov v medzipamäti DNS.
Dôsledky
- Smerovanie sieťovej komunikácie na podvodné webstránky
- Kompromitácia podnikovej siete
- Únik dát
Opis činnosti
CVE-2020-25681 – CVE-2020-25687
Otrávenie medzipamäte DNS
Zraniteľnosti umožňujúce „otrávenie“ medzipamäte DNS (podvrhnutie DNS záznamov) môžu byť útočníkom zneužité na presmerovanie obete vyhľadávajúc internetovú lokalitu na útočníkom podvrhnutú lokalitu. Tak môže užívateľovi predhodiť na stiahnutie napríklad už upravený, kompromitovaný softvér (napríklad aktualizáciu obľúbeného internetového prehliadača). Rovnako môže užívateľa nasmerovať na falošné internetové lokality imitujúce známe webové služby, vyžadujúce zadanie prístupových údajov. Odcudzenie prístupových údajov, alebo podvrhnutie kompromitovaného softvéru otvára útočníkovi nové možnosti kompromitácie systému, siete, odcudzenia dát, či vykonaniu inej škodlivej aktivity.
CVE-2020-25686
Zraniteľnosť, ktorá sa dá zneužiť „narodeninovým útokom“ (RFC 5452) . Tento typ kryptografického útoku využíva pravdepodobnosť nájdenia zhody dopytov pre jednu doménu v rámci náhodných pokusov. Zneužíva DNS požiadavky (RRNAME). Môže byť zneužitý na „otrávenie“ DNS záznamov v medzipamäti DNS.
CVE-2020-25684
Nedostatočná kontrola správnej adresy/portu vo funkcii „reply_query“ umožňuje útočníkovi posielať DNS systému podvrhnuté odpovede, a tak presmerovať požiadavky podľa svojho záujmu.
CVE-2020-25685
Chýbajúca kontrola názvu zdroja požiadavky (RRNAME) vo funkcii „reply_query“ umožňuje vzdialenému útočníkovi falšovať DNS komunikáciu a tak otráviť medzipamäť DNS.
Zraniteľnosti Dnsmasq v prvku DNSSEC
Zraniteľnosti bezpečnostného prvku Dnsmasq DNSSEC spočívajú v chybách, keď určité funkcie pri povolenom zabezpečení DNSSEC nesprávne, alebo vôbec nekontrolujú údaje na vstupe. Tým môžu spôsobiť pretečenie pamäte a jej následné poškodenie, čo môže viesť k odmietnutiu služby, umožneniu zapisovať do pamäte ľubovoľné dáta, vykonaniu kódu, či kompromitácii cieľového zariadenia.
CVE-2020-25687
Pokiaľ je povolené DNSSEC a útočník pošle platnú DNS odpoveď, ktorá bude dlhšia než odpoveď, ktorú systém očakáva, môže dôjsť k pretečeniu pamäti pridelenej halde. Chyba je spôsobená nedostatkom kontroly dĺžky vo funkcii rtc1035.c:extract_name(), ktorú je možné zneužiť na to, aby kód vykonal funkciu „memcpy()“ so zápornou veľkosťou v „sort_rrset()“. To spôsobí zlyhanie dnsmasq, čo povedie k odmietnutiu služby.
CVE-2020-25683
Pokiaľ je povolené DNSSEC a útočník pošle platnú DNS odpoveď, ktorá bude dlhšia než odpoveď, ktorú systém očakáva, môže dôjsť k pretečeniu pamäti pridelenej halde. Chyba je spôsobená nedostatočnou kontrolou dĺžky vo funkcii rtc1035.c:extract_name(), ktorú je možné zneužiť na to, aby kód vykonal funkciu „memcpy()“ so zápornou veľkosťou v „get_rdata()“. To spôsobí zlyhanie dnsmasq, čo povedie k odmietnutiu služby.
CVE-2020-25682
Pokiaľ je povolený DNSSEC, chybu môže útočník zneužiť na spôsobenie pretečenia medzipamäte vo funkcii „extract_name()“.Funkcii chýba kontrola dĺžky na vstupe. Vzdialený útočník môže chybu zneužiť na poškodenie pamäte v cieľovom zariadení, čo by viedlo ku nedostupnosti služby.
CVE-2020-25681
Chyba bola nájdená v spôsobe, akým sú zoradené „RRSets“ funkciou „sort_rrset()“. Zraniteľnosť vedie ku pretečeniu medzipamäte haldy. Pokiaľ je povolený DNSSEC, umožňuje vzdialenému útočníkovi zapisovať ľubovoľné údaje do pamäte cieľového zariadenia. Takáto situácia môže spôsobiť nedostupnosť služby, ale aj ďalšie neočakávané správanie cieľového zariadenia.
Zraniteľné systémy
- Dnsmasq verzia 2.83 a staršie
- Firmvér všetkých sieťových prvkov, ktorý tieto verzie obsahuje
Závažnosť zraniteľnosti
Kritická
Možné škody
Únik informácií
Vzdialené vykonávanie kódu
Nedostupnosť služby
Odporúčania
- Aktualizácia na novšiu verziu
- V žiadnom prípade nevypínať DNSSEC, ale aktualizovať firmvér prvkov využívajúcich takúto súčasť.
- Nasadiť DNSSEC, pre bezpečnosť DNS komunikácie
Mitigácia zraniteľností je možná používaním DNS-over-HTTPS, či statickým nastavením dôveryhodného DNS servera (napr. Google, Cloudflare).
Odkazy
https://www.zdnet.com/article/dnspooq-lets-attackers-poison-dns-cache-records/
https://www.jsof-tech.com/disclosures/dnspooq/
https://threatpost.com/dnspooq-flaws-allow-dns-hijacking-of-millions-of-devices/163163/
https://www.theregister.com/2021/01/20/dns_cache_poisoning/
https://www.bleepingcomputer.com/news/security/list-of-dnspooq-vulnerability-advisories-patches-and-updates/
https://ubuntu.com/security/CVE-2020-25681
https://ubuntu.com/security/CVE-2020-25682
https://ubuntu.com/security/CVE-2020-25683
https://ubuntu.com/security/CVE-2020-25687
https://ubuntu.com/security/CVE-2020-25685
https://ubuntu.com/security/CVE-2020-25684
https://ubuntu.com/security/CVE-2020-25686