CERT veröffentlicht CVEs für sechs schwerwiegende Sicherheitslücken in dnsmasq
(lists.thekelleys.org.uk)- CERT veröffentlicht am 11. Mai 2026 ein Set von CVEs für sechs schwerwiegende Sicherheitslücken in dnsmasq
- Bei den Schwachstellen handelt es sich durchweg um alte Bugs, und sie betreffen nahezu alle dnsmasq-Versionen mit Ausnahme sehr alter Releases
- Die CVEs wurden den Herstellern vorab offengelegt, und jeder Hersteller muss rechtzeitig eine gepatchte Version seines dnsmasq-Pakets bereitstellen
- Für das stabile Release dnsmasq 2.92 wurde die gepatchte Version 2.92rel2 erstellt, die über die bisherigen Download-Orte verfügbar ist
- In Kürze soll das Tag dnsmasq-2.93rc1 erstellt werden; nach Tests wird eine Veröffentlichung von 2.93 in etwa einer Woche angestrebt
Offenlegung der dnsmasq-Schwachstellen und Patches
- CERT veröffentlicht am 11. Mai 2026 ein Set von CVEs für sechs schwerwiegende Sicherheitslücken in dnsmasq
- Die Schwachstellen sind allesamt alte Bugs und betreffen nahezu alle dnsmasq-Versionen mit Ausnahme sehr alter Releases
- Die CVEs wurden den Herstellern vorab offengelegt, und jeder Hersteller muss rechtzeitig eine gepatchte Version des dnsmasq-Pakets ausliefern
- Details und Patches sind unter https://thekelleys.org.uk/dnsmasq/CVE/ verfügbar
- Für das stabile Release dnsmasq 2.92 wurde die gepatchte Version 2.92rel2 erstellt, die über die bisherigen Download-Orte verfügbar ist
- Im Entwicklungszweig sollen zeitgleich ebenfalls Fix-Commits erscheinen; einige nutzen dieselben Patches wie die Backports, andere sind umfassendere Überarbeitungen, die die Ursache des Problems beheben
Zunahme von KI-basierten Reports und Plan für 2.93
- In den vergangenen Monaten hat KI-basierte Sicherheitsforschung zu einem starken Anstieg von Bug-Reports geführt, und das Entduplizieren sowie Klassifizieren der Fehler kostet viel Zeit
- Die Bugs wurden in solche aufgeteilt, die eine Vorab-Offenlegung an Hersteller erfordern, und solche, die besser sofort nach Veröffentlichung behoben werden; diese Unterscheidung ist zwangsläufig subjektiv
- Da mehrere „good guys“ dieselben Bugs wiederholt gefunden haben, ist es wahrscheinlich, dass auch „bad guys“ sie hätten finden können; daher wird der Nutzen eines langen Embargos als begrenzt angesehen
- Die Koordination eines Embargos und die Bereitstellung von Backports erfordern von allen Beteiligten viel Zeit und Aufwand
- Die meisten Bugs sollen in kommenden Releases behoben werden; Vorrang hat, neue dnsmasq-Versionen möglichst fehlerfrei zu machen
- Dass in den Wochen vor der Ankündigung viele Security-Fix-Commits ins git-Repository aufgenommen wurden, passt ebenfalls zu dieser Richtung
- Das Tag dnsmasq-2.93rc1 soll in Kürze erstellt werden; Ziel ist es, die stabile Version 2.93 so schnell wie möglich zu veröffentlichen
- Tests des Release Candidate sind wichtig, daher sollten alle, die können, ihn frühzeitig testen
- Wenn alles reibungslos läuft, könnte 2.93 in etwa einer Woche erscheinen
- Der „Tsunami“ an KI-generierten Bug-Reports zeigt keine Anzeichen eines Abflauens, sodass sich derselbe Prozess bald erneut wiederholen könnte
- Zwischen dem Ziel, möglichst viele der aktuell eingehenden Bugs noch in 2.93 aufzunehmen, und einer rechtzeitigen Veröffentlichung besteht ein Spannungsverhältnis; Priorität hat eine zeitnahe Veröffentlichung
1 Kommentare
Hacker-News-Kommentare
Es wirkt, als würden wir jetzt an einen Punkt kommen, an dem es dringend wird, in speichersichere Sprachen umzusteigen.
Die meisten zuletzt gefundenen Schwachstellen hängen direkt mit nicht speichersicheren Sprachen zusammen, und es scheint sehr schwer zu rechtfertigen, warum man DNS-/DHCP-Server nicht in Rust oder Go schreiben kann, möglichst ohne
unsafe.AI-Sicherheitsforscher tun immerhin irgendetwas. Wenn es so einfach wäre, alles in Rust neu zu schreiben, hätte es am Tag nach so einem Vorfall sofort eine robuste Rust-Alternative geben müssen.
Warum das nicht passiert? Weil man für solche Arbeit kaum GitHub-Stars bekommt.
Ich bezweifle, dass „wir kennen die Maximalgröße nicht, also muss alles dynamisch sein“ wirklich richtig ist. Es ist nicht das Ende der Welt, wenn ein Programm eine zulässige maximale Eingabegröße deklariert und darüber hinaus einen Fehler ausgibt oder einen Ringpuffer verwendet.
Wenn man die Größe kennen kann, kann man entsprechend entwerfen. RAM ist endlich, und es ist seltsam, dass alle Schichten darin so gebaut werden, als wären sie unendlich.
Auf Rust umzusteigen wirkt wie eine enorme Zeitverschwendung und löst nicht das grundlegende Problem, dass Programme nicht an die Realität endlicher Systemressourcen angepasst modelliert werden. Das betrifft nicht nur Speicher. Dass Chrome ein 4-GB-Modell auf das Gerät des Nutzers lädt, ist ein ähnlicher Fall.
https://xchglabs.com/blog/dnsmasq-five-cves.html
Ich habe mich gefragt, ob OpenWRT schon einen neuen Build veröffentlicht hat, aber die Antwort ist: noch nicht, es wird noch daran gearbeitet.
https://forum.openwrt.org/t/dnsmasq-set-of-serious-cves/2500...
https://github.com/mirror/dd-wrt/issues/465
https://svn.dd-wrt.com/changeset/64944
https://svn.dd-wrt.com/changeset/64905
Das Release sei „coming soon“.
Mein MaraDNS wurde im Zeitalter AI-gestützter Sicherheitsaudits ziemlich umfassend geprüft.
Seit 2023 wurde kein einziger schwerwiegender Sicherheitsfehler gefunden [1].
Das Einzige, was die Auditoren fanden, waren Dinge wie „Deadwood braucht beim Freigeben von Ressourcen länger als üblich, wenn es im vollständig rekursiven Modus ein ungewöhnliches Paket bekommt“ [2] oder „ein mit MaraDNS geliefertes Hilfsprogramm kompiliert seit 2022 nicht einmal mehr, hat aber einen Buffer Overflow nur dann, wenn
$HOMElänger als 50 Zeichen ist“ [3].Ich bin persönlich sehr zufrieden damit, dass MaraDNS jetzt unter echter, tiefgehender Sicherheitsprüfung als ziemlich sicher dasteht.
[1] https://samboy.github.io/MaraDNS/webpage/security.html
[2] https://github.com/samboy/MaraDNS/discussions/136
[3] https://github.com/samboy/MaraDNS/pull/137
Auch Lua war nicht frei von Sicherheitsfixes.
Ich habe selbst ein paar Bibliotheken geschrieben, in denen seit 1991 kein schwerwiegender Sicherheitsfehler gefunden wurde. Natürlich benutzt niemand meine Bibliotheken.
Ich will die Leistung nicht kleinreden, aber es ist wichtig, solche Behauptungen im Kontext der Nutzerbasis einzuordnen.
Diese Eigenwerbung bringt der dnsmasq-Diskussion fast keinen Mehrwert.
Je weiter verbreitet Software ist, desto mehr wird sie geprüft und desto mehr Bugs und Randfälle werden gefunden.
Zum Glück läuft diese Software ja sicher nicht auf Millionen Geräten, die praktisch nie Updates bekommen.
Ziemlich ernst.
„Ein entfernter Angreifer, der DNS-Anfragen stellen oder DNS-Antworten liefern kann, kann einen großen Out-of-Bounds-Write auf dem Heap auslösen.“
Eine fehlerhafte DNS-Antwort kann „eine Endlosschleife auslösen, sodass dnsmasq auf keine Anfragen mehr antwortet“.
Bösartige DHCP-Anfragen können einen Buffer Overflow verursachen.
Einen Tsunami aus AI-Bugreports gibt es nicht in allen Projekten. Wie oben gesagt, bei MaraDNS gab es das nicht.
Ich vermute, bei djbdns und tinydns auch nicht. Wenn es das gegeben hätte, wäre das groß angekündigt worden.
Ich habe nie ganz verstanden, warum manche Projekte extrem populär werden und andere nicht.
Es wirkt fast so, als würden Tools, die „zu gefährlich zum Veröffentlichen“ seien, alle Projekte scannen, aber nur selektiv die mit Problemen kontaktieren. So muss man nicht zugeben, dass das eigene Tool nichts gefunden hat.
Ich mochte dnsmasq nie besonders. Es fühlte sich an, als würde ein einzelnes Tool zu viele Dinge übernehmen.
Einen lokalen Caching-Resolver, einen DHCP-Server und TFTP-/PXE-Boot-Konfiguration habe ich immer lieber getrennt eingerichtet.
Zum Beispiel Anfragen für
*.example.coman einen bestimmten Upstream-Server weiterzuleiten, für Phishing-Sites NXDOMAIN zurückzugeben oder alle zu*.example.orgaufgelösten IPs für Policy Routing zu einemipsethinzuzufügen.Die letzte Funktion arbeitet auf FreeBSD, obwohl es dort kein
ipsetgibt. Die Liste*.example_xyz.comkann sehr groß sein, und dnsmasq soll das in neueren Versionen effizient verarbeiten.10 von 10, nichts bereut, empfehlenswert.
Zum Beispiel verwendet Opnsense für DHCP nur den DHCP-Teil von dnsmasq und für DNS unbound, und das fühlt sich etwas „seltsam“ an.
DHCP und DNS hängen zusammen, und PXE braucht DHCP-Einträge. Für eine einfache Konfiguration müsste man sonst mindestens drei Daemons mit jeweils anderer Konfigurationssyntax zusammenstöpseln.
Anfängerfrage an Leute mit mehr Erfahrung in diesem Bereich: Warum wird Software in diesem Feld nicht viel häufiger in einer Laufzeitumgebung wie Erlang geschrieben, die Garbage Collection und Nebenläufigkeit mitbringt?
Der Performance-Verlust war zu groß, es gab eine undurchsichtige Laufzeitumgebung, bei der schwer zu sagen war, wie stabil sie damals war, es gab wenige Mitwirkende, und die Abhängigkeitslast war groß, weil sie auf den meisten Systemen nicht installiert war.
Selbst als ich um 2015 Erlang in Produktionssystemen verwendet habe, gab es raue Kanten, sobald man sich etwas vom ursprünglich gedachten Einsatzbereich entfernte. Das ist keine Kritik nur an Erlang, viele Sprachen und Laufzeiten waren ähnlich.
Viele der Systeme, die in den kommenden Wochen oder Monaten weiter Treffer einstecken werden, haben einen ähnlichen Hintergrund. Beim Linux-Kernel war die einzige potenzielle Alternative damals im Grunde C++. OpenSSL, ein Stammgast bei Sicherheitsproblemen, begann 1998.
Ich stimme sehr stark der Aussage zu, dass man keine neuen Projekte mit Netzwerkzugang in C schreiben sollte, aber wenn man auf 1998 zurückgeht, ist es schwer zu sagen, welche andere Wahl realistisch gewesen wäre.
Sicherere Sprachen gab es, aber ihre Communities waren viel kleiner als die von C, und ihre Stabilität ließ sich schwerer garantieren. Java war bereits da, aber ich weiß nicht genau, ab wann es ein ernsthafter Kandidat für Netzwerkserver wurde; ich würde grob auf die späten 2000er tippen. Das Java, das ich 1999 gesehen habe, war es jedenfalls noch nicht.
Ich habe zum Beispiel 2011 einen Haskell-Netzwerkserver für einen eher unwichtigen Zweck betrieben, und er ist unter Bedingungen umgefallen, die für ein Produktionsnetzwerk nicht einmal besonders extrem gewesen wären. 2013 habe ich dieselbe Codebasis ohne Änderungen an der Haupt-Event-Loop wiederverwendet, und es war etwa 90 % besser, weshalb ich eher Haskell als meinen Code verantwortlich mache.
Für echte Produktion war das aber immer noch nicht gut genug, doch immerhin zeigte es, dass nicht mein Code das Problem war. Das heißt auch: Selbst wenn Haskell in den 2000ern existierte, war es damals kaum eine realistische Option für Netzwerkserver.
Heute gibt es viel mehr Auswahl als früher.
structnormalerweise ziemlich direkt auf Netzwerkpakete abbilden, was recht einfach ist.In anderen Sprachen ist das oft nicht so unkompliziert.
Dazu kommt natürlich, dass sie langsamer und größer sind.