Publicat în

GitLab lansează patch-uri critice: CVE-2026-97229 (CVSS 10.0) și alte 5 vulnerabilități high-severity — ce trebuie să faci acum

GitLab a publicat luni o serie de actualizări de securitate care adresază șase vulnerabilități, printre care una critică cu scor maxim CVSS 10.0. Vulnerabilitatea principală, CVE-2026-97229, permite atacatorilor neautentificați să execute cod arbitrar pe serverele GitLab auto-gestionate printr-o expresie regulată special construită în configurația CI/CD. Patch-urile sunt disponibile pentru versiunile 19.4.2, 19.3.5 și 19.2.8, atât pentru Community Edition (CE) cât și pentru Enterprise Edition (EE). Instanațiile GitLab.com sunt deja actualizate, iar clienții GitLab Dedicated nu trebuie să acționeze. Pentru echipele care administrează servere dedicate sau VPS-uri cu GitLab self-hosted, actualizarea imediată nu este opțională — este o cerință de supraviețuire a infrastructurii. Mai jos analizăm fiecare vulnerabilitate, vectorii de atac și pașii concreți de remediere.

CVE-2026-97229: Integer overflow în compilatorul de regex CI/CD — RCE neautentificat

Aceasta este cea mai severă problemă din seriul actual. GitLab o descrie ca un integer overflow în compilatorul de expresii regulate CI/CD. În condiții specifice, validarea insuficientă a expresiilor regulate permite unui atacator neautentificat să trimită un payload malițios prin fișierul .gitlab-ci.yml (sau via API-ul de configurare a pipeline-urilor) și să execute cod arbitrar pe serverul GitLab.

Impactul practic: Compromiterea totală a instanței — acces la secrete, certificate, baza de date, cod sursă, și posibilitatea de a pivota către alte sisteme din rețea. Scorul CVSS 10.0 reflectă: vector de atac de rețea (AV:N), complexitate joasă (AC:L), fără autentificare (PR:N), fără interacțiune utilizator (UI:N), și impact maxim pe confidențialitate, integritate și disponibilitate.

Versiuni afectate: Toate versiunile 19.2.x înainte de 19.2.8, 19.3.x înainte de 19.3.5, și 19.4.x înainte de 19.4.2. Toate tipurile de deployment (Omnibus, Docker, Helm chart, instalare din sursă) sunt vulnerabile.

Cercetătorul Johan Carlsson a raportat problema prin programul HackerOne al GitLab. Detaliile tehnice complete vor fi publicate de GitLab după 90 de zile de la lansarea patch-ului, dar exploaturile funcționale pot apărea mult mai devreme — cercetătorii de la watchTowr au demonstrat că pot reverse-engineera patch-uri GitLab și să construiască exploate funcționale în minute.

Pipeline permissions și AI agents: suprafața de atac se extinde

Pe lângă CVE-2026-97229, cinci vulnerabilități high-severity completează tabloul:

| CVE | CVSS | Componentă | Descriere scurtă | |––|––|––––|––––––| | CVE-2026-92883 | 8.7 | Syntax highlighting / XSS | Atacator autentificat injectează JavaScript printr-un repository special construit; codul execută în browserul altor utilizatori. Cauza: sanitizare improprie a atributelor HTML în output-ul evidențiat. | | CVE-2026-16301 | 8.5 | CI/CD pipelines / Protected branches | Utilizatori cu rolul Developer pot rula pipeline-uri pe branch-uri protejate fără autorizare. Rupe modelul de permisiuni GitLab. | | CVE-2026-14814 | 8.2 | Cache / Raw repository files | Poisoning de cache pentru fișiere raw din repository; pipeline-uri țintite execută conținut malițios și accesează variabile de mediu protejate (CI/CD secrets). | | CVE-2026-81839 | 7.7 | Project transfer / Scheduled pipelines | Utilizatori autentificați rulează pipeline-uri arbitrare într-un proiect transferat, cu privilegiile noului grup. | | CVE-2026-96893 | 7.3 | GitLab Duo (AI) | Prompt injection în instrucțiunile agentului AI; conținut injectat determină execuție de comenzi neintenționate atribuite altor utilizatori. |

Două observații critice: CVE-2026-14814 combină cache poisoning cu exfiltrare de secrete — un scenariu clasic de supply-chain attack pe nivel de CI/CD. CVE-2026-96893 confirmă ce avertizau cercetătorii de la Legit Security: asistenții AI (GitLab Duo) devin parte a suprafeței de atac a aplicației. Dacă AI-ul citește conținut generat de utilizatori (comentarii, commit messages, MR descriptions), acel input trebuie tratat ca neîncercuibil.

Context: al treilea incident critic GitLab în câteva luni

Nu este o izolatitate. În ultimele luni, GitLab a adresat:

  • CVE-2026-19478 (august) — Code injection prin GraphQL directive, CVSS critic, exploatață în wild în zilele următoare disclosure-ului (watchTowr a văzut exploate pe honeypots).
  • CVE-2026-85706 — Path traversal în Repository Commits API, CVSS 10.0, citire fișiere arbitrare într-un singur request HTTP.
  • CVE-2026-0723 (ianuarie) — Bypass 2FA cu account ID.

Pattern-ul este clar: GitLab self-hosted expus pe internet este o țintă de mare valoare. Aproximativ 50% din Fortune 100 folosește GitLab, cu peste 50 de milioane de utilizatori înregistrați. O instanță compromisă nu înseamnă doar pierderea codului sursă — înseamnă acces la pipeline-uri de deploy, secrete de producție, certificate Kubernetes, și credențiale cloud. Pentru organizațiile care găzduiesc GitLab pe servere dedicate sau infrastructură privată, managementul patch-urilor trebuie să fie tratat ca proces continuu, nu ca eveniment reacționar.

Verificare versiune și upgrade planificat: pași concreți pentru admins

Înainte de orice upgrade, confirmă versiunea curentă și planul de migrare:

  1. Verifică versiunea activă:
   # Omnibus
   sudo gitlab-rake gitlab:env:info | grep "GitLab version"
   
   # Docker
   docker exec -it gitlab cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
   
   # Helm / Kubernetes
   kubectl exec -it <gitlab-pod> -- cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
  1. Consultă notele de release pentru calea ta de upgrade:
  1. Backup obligatoriu înainte de upgrade:
   # Omnibus
   sudo gitlab-backup create STRATEGY=copy
   
   # Verifică integritatea backup-ului
   sudo gitlab-backup check
  1. Aplică patch-ul conform metodei de instalare:
  • Omnibus: apt update && apt install gitlab-ce=19.4.2-ce.0 (sau gitlab-ee)
  • Docker: docker pull gitlab/gitlab-ce:19.4.2-ce.0 și recreare container
  • Helm: helm repo update && helm upgrade gitlab gitlab/gitlab --version 19.4.2 --namespace gitlab
  • Instalare din sursă: urmează upgrade guide-ul oficial
  1. Post-upgrade validation:
   # Verifică servicii
   sudo gitlab-ctl status
   
   # Rulează check-ul de sănătate
   sudo gitlab-rake gitlab:check SANITIZE=true
   
   # Confirmă versiunea nouă
   sudo gitlab-rake gitlab:env:info | grep "GitLab version"
  1. Dacă nu poți upgrada imediat — mitigări temporare:
  • Blochează accesul neautentificat la /api/graphql și la endpoint-urile CI/CD
  • Setează repository-urile pe Private (Settings → General → Visibility)
  • Dezactivează GitLab Duo dacă nu e folosit: Admin Area → Settings → GitLab Duo → Disable
  • Monitorizează log-urile pentru request-uri suspecte la /ci/lint, /api/v4/ci/lint, sau /graphql

Concluzie: patching-ul nu e opțional, e igienă de infrastructură

Seriul de vulnerabilități GitLab din 2024-2025 subliniază o realitate neplăcută: orice platformă DevOps complexă, expusă pe internet, va fi atacată. CVE-2026-97229 este un reminder că validarea input-ului la nivel de compilator regex — o componentă considerată „internă” — poate deveni vector de RCE neautentificat. Combinat cu prompt injection în AI (CVE-2026-96893) și cache poisoning care scote secrete (CVE-2026-14814), tabelul de atac acoperă întreaga lanț CI/CD.

Pentru echipele care rulează GitLab pe infrastructură proprie — fie că vorbim de servere dedicate, VPS-uri, sau clustere Kubernetes — mesajul e simplu: automatizează patching-ul, testează backup-urile, și monitorizează log-urile. Dacă ai nevoie de infrastructură care suportă deployment-uri GitLab HA cu storage replicat și backup-uri automate, dedicated-servers.ro oferă configurații validate pentru GitLab Omnibus și Helm, cu opțiuni de managed services pentru patching-ul de securitate. Pentru soluții VPS flexibile cu root access complet și imagine GitLab pre-configurată, verifică serverspan.ro.

Nu aștepta disclosure-ul public la 90 de zile. Exploatele există deja în cercul cercetătorilor de securitate — și, probabil, în cel al atacatorilor.

–

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *