LONDON (IT BOLTWISE) – Eine Sicherheitsforschung zeigt eine neue Remote-Code-Execution-Kette in selbst gehosteten GitLab-Instanzen: Ein normaler Authentifizierungsnutzer kann über manipulierte Jupyter-Notebooks beim Diff-Rendering Befehle „als git“ ausführen. Die Schwachstelle basiert auf der Ruby-JSON-Parser-Bibliothek Oj und lässt sich ohne Adminrechte, ohne CI-Runner-Zugriff und ohne Interaktion anderer Nutzer auslösen. Entscheidend ist dabei, wie GitLab die Notebook-Daten an Oj in einem lang laufenden Puma-Worker übergibt und so Speicherfehler ausnutzt. Für Operatoren zählt jetzt vor allem: Version aktualisieren und bei Helm/Operator zusätzlich in den Webservice-Containern nachsehen.

In selbst betriebenen GitLab-Setups ist eine neue Kette für die Remote-Code-Execution (RCE) relevant geworden, weil sie nicht auf klassische Rechte- oder Infrastrukturpfade angewiesen ist. Eine Sicherheitsforschung beschreibt einen funktionierenden Proof-of-Concept für GitLab 18.11.3 auf x86-64: Ein gewöhnlich authentifizierter Nutzer löst den Angriff aus, indem er zwei gezielt präparierte Jupyter-Notebooks commitet und anschließend eine Diff-Ansicht anfordert. Der Ablauf kommt ohne Administratorrechte aus, benötigt weder Zugriff auf einen Continuous-Integration-Runner noch setzt er eine besondere Interaktion mit anderen Benutzern voraus. Das macht das Muster besonders für Unternehmen riskant, die zwar Zugriffskontrollen etabliert haben, aber dennoch viele nicht-triviale Nutzerrollen auf GitLab-Projekte anwenden.
Technisch setzt der Angriff genau dort an, wo GitLab die Notebook-Inhalte aufbereitet: Der Notebook-Renderer übergibt repository-kontrollierte „.ipynb“-JSON-Daten an den Oj-Parser (Oj: : Parser.usual.parse). Dabei läuft die Verarbeitung in einem Puma-Worker, der als lang lebender Applikationsprozess seine internen Zustände zwischen Requests wiederverwendet. Die Forschung zeigt, dass zwei Oj-Fehler zusammenwirken: Einer der Bugs beeinflusst einen Callback-Pointer, während der zweite einen Heap-Adressabdruck liefert, der wiederum benötigt wird, um die Suche im Adressraum zu verengen. Diese Kombination ist typisch für moderne Exploit-Ketten, weil sie aus einem anfänglichen Speicherfehler nicht nur einen Crash, sondern kontrollierte Kontrolle ableitet.
Im Detail wird die Ursache in der Art gefunden, wie Oj den verschachtelten Strukturzustand verwaltet. Oj hält Nesting-State in einem fest dimensionierten Stack von 1.024 Bytes vor, prüft aber nicht, ob die Verschachtelungstiefe diese Grenze überschreitet. Durch tief verschachtelte Arrays können dadurch 0x01-Byte-Schreibvorgänge in benachbarte Parser-States gelangen. Der Exploit nutzt diese Beschädigung, um buf.head zu verfälschen; dadurch kann Oj später im Pfad zu realloc() einen „forged interior pointer“ übergeben. Eine nachfolgende Ruby-Array-Allokation greift dabei in dasselbe jemalloc-Region-Layout ein und überschreibt erneut den relevanten Bereich. Damit entsteht ein zweistufiges Kontrollmuster: Erst werden Zeiger-/State-Strukturen manipuliert, danach werden die Auswirkungen in einem späteren allokationsgetriebenen Schritt „eingefangen“.
Der zweite Bug liefert zusätzlich den entscheidenden Informationskanal, der die ASLR-Eingrenzung erleichtert. Oj allokiert einen objektbezogenen Key mit 65.565 Byte Größe, behandelt die Key-Länge jedoch in einem signed 16-bit Feld und kürzt damit effektiv auf 29 Byte. Die zurückgegebenen 29 Bytes enthalten dann einen Live-Pointer aus der Key-Allokation. GitLab übernimmt diesen Pointer in den gerenderten Notebook-Diff – und macht ihn so mittelbar für den Angreifer auswertbar. In der in der Forschung profilierten Konstellation eines GitLab 18.11.3-Systems mit zwei Workern dauerte die Verengung der ASLR-Suche typischerweise fünf bis zehn Minuten; bei breitereren Worker-Konfigurationen wurde eine Größenordnung von etwa ein bis zwei Stunden für den „widest mature-worker range“-Fall projiziert. Die Veröffentlichung koppelt damit praktische Angriffsdauer an konkrete Prozessverhältnisse und nicht nur an theoretische Machbarkeit.
Die Reichweite hängt stark von der Isolierung der Deployment-Umgebung ab, weil der erfolgreiche Angriff im Ergebnis als „git“ ausführt. In einer schlecht isolierten Container- oder VM-Topologie kann das mehr umfassen als „nur“ die Git-Repository-Daten: Die Forschung nennt als mögliche Ziele Quellcode-Assets, Rails Secrets, Service-Credentials sowie Informationen aus CI/CD-Kontexten. Zusätzlich kommt hinzu, dass interne Dienste erreichbar sein können, sofern Netzwerk- und Service-Policies das zulassen. Interessant ist dabei auch der Ablauf über zwei Dateien innerhalb einer einzigen Diff-Stream-Anfrage: Zwei lexikalisch sortierte Notebook-Dateien sorgen dafür, dass beide Parser-Phasen innerhalb des gleichen Puma-Workers stattfinden und der globale Oj-Parserzustand wiederverwendet wird. Damit wird der Angriff so strukturiert, dass die erste Datei den State korrumpiert und die nächste Datei anschließend die manipulierte Callback-Logik triggert.
Für die betroffenen Versionen gibt die Forschung konkrete Range-Informationen: Verwundbar sind GitLab Community Edition (CE) und Enterprise Edition (EE) in mehreren Intervallen, einschließlich 15.2.0 bis 18.10.7 sowie 18.11.0 bis 18.11.4 und 19.0.0 bis 19.0.1. Die ersten fixenden Releases werden mit 18.10.8, 18.11.5 und 19.0.2 angegeben. Außerdem sind Oj-Gems zwischen 3.13.0 und 3.17.1 verwundbar; die erste veröffentlichte Version, die beide relevanten Fixes enthält, ist 3.17.3. Ruby selbst gilt als nicht betroffen. Bei GitLab.com wird laut Forschung bis zum 10. Juni gepatcht; für dedizierte Kunden sieht sie keinen unmittelbaren Handlungsbedarf, sofern ihre Instanz bereits eine der fixenden Versionen erreicht hat.
Für Betreiber selbst gehosteter GitLab-Instanzen folgt daraus vor allem ein operatives Vorgehen, das in vielen Kubernetes-Setups leicht unterschätzt wird. Wer Helm oder einen Operator nutzt, sollte nicht nur Chart- oder Operator-Versionen als Proxy für den Patchstand betrachten, sondern im Webservice-Container die tatsächliche GitLab-Version prüfen. Die Forschung beschreibt dazu explizit, dass Operator-Setups die Version im Webservice-Image enthalten müssen und ein Upgrade der Steuerungsebene alleine nicht garantiert, dass der gepatchte Code auch in der relevanten Laufzeit landet. Konkrete Übergangslösungen werden nicht angeboten; sowohl der Koordinator der Offenlegung als auch die Zusammenstellung der Fixes richten den Fokus auf ein Upgrade auf eine unterstützte Version. Außerdem gab es laut Forschung zum Stand Ende Juli keine bestätigte Kenntnis über eine „in the wild“-Ausnutzung; gleichzeitig zeigt die Veröffentlichung, dass der technische Weg zum Ziel mit einem überschaubaren Nutzerpfad erreichbar ist – und macht damit die Priorisierung für Security-Teams deutlich.
💳 Amazon-Kreditkarte mit 2.000 Euro Limit bestellen!
🔥 Heutige Hot Deals bei Amazon: Bis zu 80% Rabatte!
🎉 Amazon Haul-Store für absolute Schnäppchenjäger!
- ★ 23-stufiges KI-Go-Training – Für Spieler mit Grundkenntnissen der Regeln – Entwickelt als intelligenter Trainingspartner passt sich die KI Spielern von 18K bis 9D an. Ideal für alle, die die Grundregeln bereits beherrschen und ihr Spiel verbessern möchten.
- IHR EMOTIONALER AI-BEGLEITER: Eiliko ist mehr als nur ein Anhänger, es ist ein charismatischer KI-Freund. Mit einem dynamischen LED-Bildschirm, der eine Vielzahl von animierten Gesichtern und Ausdrucksformen anzeigt, reagiert er auf Ihre Interaktionen mit einzigartiger Persönlichkeit und Charme.
- NIEDLICHER BEGLEITER: Eilik ist der ideale Begleiter für Kinder und Erwachsene, die Haustiere, Spiele und intelligente Roboter lieben. Mit vielen Emotionen, Bewegungen und interaktiven Funktionen.
- 【XL-Größe für gedeihende Pflanzen】Geben Sie Ihren Pflanzen den Raum, den sie verdienen! Unser verbessertes, großes 13,7 cm großes Design bietet Platz für Pflanzen mit einem Durchmesser von bis zu 8,9 cm und damit deutlich mehr Platz für Wurzelwachstum und Pflanzengesundheit im Vergleich zu kleineren, veralteten Modellen. Die Produktabmessungen betragen 13,6 x 13,6 x 13,2 cm und das Gerät wiegt nur 355 g.
- V28 Update - JETZT MIT NEUEN FUNKTIONEN! Als Reaktion auf das Ladeproblem von Loona haben wir das automatische Aufladen 2.0 verbessert. Diese Optimierung hilft Loona, die Ladewege in verschiedenen Szenarien zu erkennen und anzupassen, um die Erfolgsquote beim automatischen Aufladen zu erhöhen. Mobile Hotspots können sich mit Loona verbinden und überwinden WLAN-Einschränkungen, sodass Sie jederzeit und überall mit Loona interagieren können.
- Die besten Bücher rund um KI & Robotik!

- Die besten KI-News kostenlos per eMail erhalten!
- Zur Startseite von IT BOLTWISE® für aktuelle KI-News!
- IT BOLTWISE® kostenlos auf Patreon unterstützen!
- Aktuelle KI-Jobs auf StepStone finden und bewerben!
- Künstliche Intelligenz: Dem Menschen überlegen – wie KI uns rettet und bedroht | Der Neurowissenschaftler, Psychiater und SPIEGEL-Bestsellerautor von »Digitale Demenz«
Du hast einen wertvollen Beitrag oder Kommentar zum Artikel "GitLab RCE per Notebook-Diff: Oj-Parsing ermöglicht Kommandoausführung ohne Adminrechte" für unsere Leser?


#Sophos
Es werden alle Kommentare moderiert!
Für eine offene Diskussion behalten wir uns vor, jeden Kommentar zu löschen, der nicht direkt auf das Thema abzielt oder nur den Zweck hat, Leser oder Autoren herabzuwürdigen.
Wir möchten, dass respektvoll miteinander kommuniziert wird, so als ob die Diskussion mit real anwesenden Personen geführt wird. Dies machen wir für den Großteil unserer Leser, der sachlich und konstruktiv über ein Thema sprechen möchte.
Du willst nichts verpassen?
Du möchtest über ähnliche News und Beiträge wie "GitLab RCE per Notebook-Diff: Oj-Parsing ermöglicht Kommandoausführung ohne Adminrechte" informiert werden? Neben der E-Mail-Benachrichtigung habt ihr auch die Möglichkeit, den Feed dieses Beitrags zu abonnieren. Wer natürlich alles lesen möchte, der sollte den RSS-Hauptfeed oder IT BOLTWISE® bei Google News wie auch bei Bing News abonnieren.
Nutze die Google-Suchmaschine für eine weitere Themenrecherche: »GitLab RCE per Notebook-Diff: Oj-Parsing ermöglicht Kommandoausführung ohne Adminrechte« bei Google Deutschland suchen, bei Bing oder Google News!