Ruby behebt drei kritische Fehler in der Regex-Engine ohne eigene CVE-Kennungen

Das Ruby-Team hat die Versionen 4.0.9, 3.4.12 und 3.3.13 veröffentlicht. Sie beheben drei Fehler in der Regex-Engine Onigmo, die auf betroffenen Servern Schadcodeausführung ermöglichen können. Gefährdet sind Ruby-Anwendungen, die reguläre Ausdrücke aus Eingaben von Nutzern oder anderen nicht vertrauenswürdigen Quellen erzeugen. Aktive Angriffe meldet bislang weder Ruby noch GitLab.

Besonders relevant ist die Änderung für GitLab. Der Dienst kompiliert reguläre Ausdrücke unter anderem aus CI/CD-Konfigurationen. Vier GitLab-Schwachstellen wurden den Ruby-Fehlern zugeordnet: CVE-2026-89078 und CVE-2026-93577 mit einem CVSS-Wert von 9,9 sowie CVE-2026-97229 und CVE-2026-110264 mit dem Höchstwert 10,0. Alle vier waren ohne Anmeldung ausnutzbar; GitLab schloss sie zwischen dem 23. September und dem 21. Oktober, indem es das mitgelieferte Ruby aktualisierte.

Die Fehler entstehen beim Kompilieren des Musters, also bevor Ruby den regulären Ausdruck auf einen Text anwendet. Eine Webanwendung kann die Schwachstelle deshalb bereits erreichen, wenn sie einen Suchparameter direkt an Regexp.new übergibt. Je nach Fehlerfolge kann der Ruby-Prozess abstürzen oder Angreifercode mit dessen Berechtigungen ausgeführt werden. Dann wären unter anderem Datenbank, Umgebungsvariablen mit Geheimnissen und das Dateisystem im Zugriff der Anwendung betroffen.

Was Betreiber jetzt prüfen sollten

Betreiber von Ruby-Anwendungen sollten auf Ruby 4.0.9, 3.4.12 oder 3.3.13 aktualisieren, sofern der jeweilige Entwicklungszweig eingesetzt wird. Für Ruby 3.2 und ältere Versionen gibt es laut Ruby-Team keine Updates mehr. Nach der Installation müssen Projekte ihre Ruby-Version übernehmen und die Gems neu bauen. Bei Docker-Images ist ein neuer Tag erforderlich; Distributionspakete und gebündelte Ruby-Versionen, etwa in GitLab Omnibus, können über eigene Produktupdates verzögert folgen.

Wer nicht sofort aktualisieren kann, sollte keine regulären Ausdrücke aus fremden Eingaben kompilieren. Ein Timeout bietet hier keinen ausreichenden Schutz, weil es nur einen zu langen Abgleich beendet, nicht aber die fehleranfällige Kompilierung. Auch eine Begrenzung der Musterlänge gilt laut Ruby-Team nicht als zuverlässig. Wenn nur eine einfache Textsuche erforderlich ist, kann die Anwendung stattdessen Zeichenketten vergleichen. Muss eine Eingabe in ein festes Muster eingesetzt werden, sollte sie mit Regexp.escape maskiert werden.

Die Zuordnung kann von herkömmlichen CVE-Abgleichwerkzeugen übersehen werden. Das Ruby-Projekt hat für die drei Fehler bislang keine eigenen CVE-Kennungen beantragt; die bekannten Kennungen beziehen sich auf GitLab-Versionen und nicht auf Ruby-Versionen. Ein installiertes Ruby 3.4.11 kann deshalb ohne Treffer in einer CVE-Datenbank erscheinen, obwohl eine Anwendung den gefährdeten Anwendungsfall nutzt. Bis zur weiteren Entscheidung des Ruby-Teams empfiehlt die Quelle, die GitLab-Kennungen zur Nachverfolgung zu verwenden.

Quellen

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert