rspamd 4.1.3 behebt Out-of-Bounds-Read bei DKIM-Signaturprüfung
Eine unbegrenzte bh=-Länge in DKIM-Signaturen ermöglichte einen Out-of-Bounds-Read beim ed25519-Verify — 4.1.3 begrenzt sie. Dazu kommen drei weitere als kritisch eingestufte Speicherfehler.
Das rspamd-Projekt hat Version 4.1.3 veröffentlicht. Vier der Korrekturen sind explizit als kritisch eingestuft. Am schwersten wiegt ein Fix in der DKIM-Prüfung: Die Länge des bh=-Tags in einer DKIM-Signatur wurde vor dem Body-Hash-Vergleich nicht begrenzt, was beim Verify von ed25519-Signaturen zu einem Out-of-Bounds-Read führen konnte. Da rspamd jede eingehende Nachricht mit DKIM-Signatur prüft, reicht eine präparierte Mail ohne weitere Voraussetzungen.
Die drei weiteren kritischen Fixes betreffen interne Speicherverwaltung: Eine Fuzzy-TCP-Session gab ihren Eigentümer bislang mehrfach frei, was bei abgebrochenen Verbindungen zu einem Use-after-free führen konnte; die Validierung von Shared-Memory-Segmenten im internen Protokoll akzeptierte bisher auch nicht reguläre Segmente außerhalb der erwarteten Grenzen; und der Lifecycle des gemeinsam genutzten HTTP-Body-Speichers hatte einen Double-free, ein geleaktes Filedescriptor-0 und konnte einen fremden Socket schließen.
Daneben bringt 4.1.3 zwei inkompatible Änderungen: Die WebUI verzichtet jetzt vollständig auf jQuery und Font Awesome (natives DOM, lokales SVG-Sprite), und HAVE_ED25519 gilt nur noch für das OpenSSL-Schlüsselparsing, wodurch ed25519-Verify auch auf OpenSSL-Builds ohne dieses Flag funktioniert.
Wer rspamd betreibt, sollte zeitnah auf 4.1.3 aktualisieren — die DKIM-Lücke betrifft jede Installation, die eingehende Signaturen prüft, unabhängig davon, ob rspamd eigenständig oder als Teil eines Stacks wie mailcow läuft.