← Alle Beiträge

Ruby-Sicherheitsupdate behebt Schwachstellen hinter GitLab-RCEs

Ruby-Sicherheitsupdate behebt Schwachstellen hinter GitLab-RCEs

Das Ruby-Sicherheitsupdate für die Versionen 4.0.9, 3.4.12 und 3.3.13 behebt drei Fehler, die vier kritischen GitLab-Schwachstellen vom Typ remote code execution (RCE) zugrunde liegen. RCE bedeutet, dass ein Angreifer möglicherweise Befehle oder Software auf einem betroffenen Server ausführen kann. Die zugrunde liegenden Probleme befinden sich in Onigmo, der in Ruby integrierten regular expression engine, und können neben GitLab auch andere Anwendungen betreffen, wenn diese Suchmuster aus Text erstellen, der von Angreifern kontrolliert wird.

regular expression bezeichnet ein Muster, das Software verwendet, um Text zu finden oder abzugleichen. Laut Rubys Sicherheitshinweis ist eine Anwendung nur dann gefährdet, wenn sie ein solches Muster aus einer von einem Angreifer kontrollierten Zeichenfolge kompiliert. Dies kann geschehen, wenn Software die Zeichenfolge an Regexp.new, Regexp.union oder Regexp.compile übergibt. Es kann auch durch interpolation auftreten, bei der ein bereitgestellter Wert direkt in ein Muster eingefügt wird, wie bei /#{input}/. Muster des Typs regular expression, die vollständig von den eigenen Entwicklern einer Anwendung geschrieben wurden, sind nicht betroffen.

GitLab stellte fest, dass ein speziell präpariertes Muster memory corruption verursachen kann, während Ruby es kompiliert. memory corruption tritt auf, wenn Software den Speicherbereich, in dem laufende Programme Daten ablegen, fehlerhaft verändert oder darauf falsch zugreift. In diesen Fällen könnte der Schaden möglicherweise zu code execution auf GitLab-Servern führen. Das Problem ist für Hostinganbieter und Websitebetreiber relevant, weil jede Ruby-Anwendung, die von Nutzern kontrollierte regular expression-Muster akzeptiert, dieselben zugrunde liegenden Fehler in der engine aufweisen kann.

Nutzer von Ruby 4.0 sollten auf 4.0.9, Nutzer von Ruby 3.4 auf 3.4.12 und Nutzer von Ruby 3.3 auf 3.3.13 aktualisieren. Die Releases 3.4.12 und 3.3.13 sind die ersten Versionen ihrer jeweiligen Reihe, die eine der drei Korrekturen enthalten. Ruby 4.0.8, das Anfang derselben Woche veröffentlicht wurde, enthält die Korrektur für CVE-2026-110264 nicht. Die Installation von 4.0.8 reicht daher nicht aus.

Ruby 3.2 und ältere branches erhalten die Korrekturen nicht. Ruby 3.2 erreichte am 1. April 2026 sein end of life und erhält damit keine unterstützten Updates mehr; 3.2.11 war das letzte Release. Ruby empfiehlt, betroffene Installationen auf die Reihe 3.4 oder 4.0 umzustellen. Organisationen, die nicht sofort aktualisieren können, sollten keine regular expression aus untrusted input mehr kompilieren, bis sie ein korrigiertes Release installieren können.

Zwei mögliche Schutzmaßnahmen beheben diese Schwachstellen nicht. Laut Ruby verhindert Regexp.timeout, eine Einstellung zur Begrenzung der Laufzeit von pattern matching, die memory corruption nicht. Auch eine Begrenzung der Zeichenzahl eines Musters ist unzuverlässig, da selbst kurze Muster die Fehler auslösen können. Diese Unterscheidung ist für Anwendungsverantwortliche wichtig, die nicht vertrauenswürdige regular expression-Muster bisher möglicherweise nur als Leistungs- oder denial of service-Risiko betrachtet haben. denial of service bedeutet, dass eine Anwendung nicht verfügbar oder für die Nutzung zu langsam gemacht wird.

GitLab akzeptiert von Nutzern bereitgestellte regular expression-Muster unter anderem in Konfigurationen für continuous integration and continuous delivery (CI/CD), die das Erstellen, Testen und Veröffentlichen von Software automatisieren. Das Unternehmen veröffentlichte zwischen dem 23. September und dem 21. Oktober vier Common Vulnerabilities and Exposures (CVE)-Kennungen und stellte für jedes Problem einen Ruby-Build mit Patches bereit. Die ersten beiden Schwachstellen, die am 23. September offengelegt wurden, setzen ein angemeldetes Konto voraus und erhielten jeweils eine Schweregradbewertung von 9,9 von 10.

Für die beiden anderen Schwachstellen ist kein Konto erforderlich. CVE-2026-97229 wurde am 12. Oktober offengelegt, CVE-2026-110264 folgte am 21. Oktober. Beide erhielten die maximale Schweregradbewertung von 10,0. Laut GitLab betrifft CVE-2026-110264 jede Version seines Produkts ab Version 7.0. Ein unabhängiger Sicherheitsforscher meldete alle vier Schwachstellen über GitLabs bug bounty program.

Mit Stand vom 23. Oktober war keine der vier Schwachstellen im Known Exploited Vulnerabilities-Katalog der US-amerikanischen Cybersecurity and Infrastructure Security Agency aufgeführt. Ruby hat zumindest vorerst keine separaten CVE-Kennungen für die drei Onigmo-Fehler beantragt und Nutzern empfohlen, stattdessen die vier GitLab-Kennungen zu verfolgen. Ruby erklärte, den Sicherheitshinweis zu überarbeiten, falls sich diese Position ändert.

Das Fehlen Ruby-spezifischer CVE-Einträge verursacht ein Sichtbarkeitsproblem bei automatisierten Scans. Die GitLab-Einträge nennen GitLab als betroffenes Produkt. Dadurch erhält ein scanner, der diese Einträge mit installierten Ruby-Versionen vergleicht, keine direkte Übereinstimmung. Ruby vergab 2022 und 2024 CVE-Kennungen für ähnliche Korrekturen, obwohl das Kompilieren von regular expression aus nicht vertrauenswürdigem Text seit Langem als unsicher gilt. Die Dokumentation beschreibt nicht vertrauenswürdige Muster derzeit lediglich als denial of service-Risiko.

Administratoren selbstverwalteter GitLab-Installationen sollten ein Release installieren, das die Korrektur für CVE-2026-110264 enthält. GitLab lieferte die Korrektur am 21. Oktober in den Versionen 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 und 18.11.13 aus. Da GitLab eine eigene Kopie von Ruby enthält, wird durch ein Upgrade von GitLab auf eines dieser Releases auch die gepatchte runtime installiert. GitLab.com verwendet bereits die korrigierte Version. Laut GitLab müssen Dedicated tenants, die aktuelle interne Releases verwenden, nichts unternehmen.

GitLab hat außerdem Erkennungsregeln veröffentlicht, mit denen Administratoren selbstverwalteter Installationen nach Hinweisen auf Ausnutzungsversuche suchen können. Organisationen, die externe Unterstützung bei der Softwarewartung und Infrastruktursicherheit benötigen, bietet AEU-I security-first IT sowie Infrastruktur und Beratung an. Die unmittelbare Priorität bleibt die Überprüfung der tatsächlich verwendeten Ruby-Version beziehungsweise der Version des selbstverwalteten GitLab. Verantwortliche sollten sich nicht auf Timeouts für Muster, Längenbegrenzungen oder Schwachstellenscans verlassen, die die GitLab-Kennungen möglicherweise nicht mit Ruby in Verbindung bringen.

Auch verfügbar in: EnglishItalianoShqip