
Episode #298
Het 24-uurse dilemma: Hoe eén coderingsfout GitLab wereldwijd wankelde
Deze analyse belicht de crisis rond de kritieke kwetsbaarheid in het softwareplatform GitLab in september 2026. Een ogenschijnlijk kleine miscommunicatie over URL-codering tussen twee interne systeemcomponenten leidde tot een maximale dreigingsscore en een geautomatiseerde race tegen de klok voor IT-beheerders wereldwijd. Het Technische Mechanisme: Workhorse vs. Puma Het Kwetsbare Punt: Het lek (CVE-2026-85706) bevond zich in de repository commits API van zowel de Community als de Enterprise Edition van GitLab. De Twee Componenten: GitLab gebruikt Workhorse (een API-proxy aan de front-line) om verzoeken op te vangen en Puma (de Ruby on Rails backend-server) om de data te verwerken. Fout in Procent-encoding: Aanvallers stuurden verzoeken met percent-encoding (zoals %20 voor een spatie). Workhorse controleerde het ongedecodeerde adres op gevaarlijke patronen (zoals ../ voor een path traversal -aanval). Omdat de tekens gecodeerd waren, herkende Workhorse het gevaar niet en liet het verzoek door. Puma vertaalde de procentcodes wél netjes terug naar normale tekst, waardoor de aanvaller uit de zandbak kon ontsnappen en willekeurige verborgen bestanden op de server kon lezen. De 'Crash-Report'-Achterdeur Om de gelezen bestandsinhoud ongemerkt te stelen, gooiden aanvallers de data in een URL-parser van Ruby on Rails (Rack::Utils.parse_nested_query). Wanneer het bestand willekeurige procenttekens bevatte, crashte de parser. In de gegenereerde Invalid Parameter Error stuurde de server de originele, geheime bestandsinhoud integraal terug naar de browser van de aanvaller. Maximale Dreiging (CVSS 10.0) en CI/CD Secrets Geen Inloggegevens Nodig: De aanval vereiste 0,0 authenticatie en was simpel uit te voeren zodra een GitLab-instantie minimaal één openbaar project bevatte. Diefstal van Secrets: Aanvallers zochten naar CI/CD secrets (SSH-sleutels, database-inlogs en masterkeys). Hiermee kunnen zij supply chain attacks uitvoeren door legitieme software-updates voor duizenden eindklanten stiekem te vergiftigen. Geautomatiseerde Hacks en de Race Tegen de Klok Patch-Diffing: Binnen 24 uur na het uitbrengen van de nood-patches door GitLab (zoals versie 19.3.2) analyseerden hackers de code-verschillen ( patch-diffing ) om het lek te reconstrueren. Honeypots en SISA: Binnen 24 uur registreerde WatchTower via honeypots al actieve scans op het internet. Overheidsdienst CISA verplichtte instanties om het lek binnen 72 uur te dichten. Extra Lek: De release dichtte tevens CVE-2026-8719 (een insecure deserialization -lek via GraphQL, CVSS 9.9). Noodmaatregelen Indien een instantie niet direct bijgewerkt kon worden, gold het advies om de GitLab-server onmiddellijk af te schermen van het publieke internet. Als een kwetsbare server online heeft gestaan, moeten alle aanwezige geheimen, wachtwoorden en SSH-sleutels preventief worden geroteerd en vervangen.






