Skip to content

GitLab patches CVSS 10.0 unauthenticated RCE in CI/CD regex compiler (CVE-2026-97229)

CVE-2026-97229 lets an unauthenticated user run arbitrary code on a GitLab server via a crafted CI/CD regular expression. Fixes are in 19.4.2, 19.3.4, and 19.2.8.

Published 3 min read

GitLab has patched CVE-2026-97229, a CVSS 10.0 flaw that lets an unauthenticated attacker run arbitrary code on a self-managed GitLab server. The fix shipped in the 19.4.2 / 19.3.4 / 19.2.8 patch release; CERT-FR echoed it the same day in CERTFR-2026-AVI-1294.

What the bug does

GitLab's advisory titles it an "Integer Overflow issue in CI/CD Regular Expression Compiler." Per the bulletin, the flaw "could have allowed an unauthenticated user to execute arbitrary code on the GitLab server" through "a specially crafted regular expression in a CI/CD configuration," "due to insufficient regular expression validation."

The CVSS vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — network vector, no privileges, no user interaction, scope-changed. That combination is why it reaches the 10.0 ceiling: a request to the CI/CD parsing path alone is enough, no account required.

Affected versions

GitLab Community Edition and Enterprise Edition:

  • >= 19.2 < 19.2.8
  • >= 19.3 < 19.3.4
  • >= 19.4 < 19.4.2

Fixed in 19.2.8, 19.3.4, and 19.4.2. GitLab.com and GitLab Dedicated are already patched; the exposure is on self-managed instances.

Exploitation status

No in-the-wild exploitation has been reported and there is no public PoC at the time of writing. The flaw was reported through GitLab's HackerOne bug bounty program by a researcher using the handle joaxcar. GitLab's standard practice is to withhold exploitation detail during the disclosure window, so the absence of a PoC is not a reason to defer the patch on an internet-reachable instance.

Action checklist

  1. Upgrade to 19.4.2, 19.3.4, or 19.2.8, matching your branch. This is a same-day job for any self-managed instance reachable from the internet.
  2. Prioritize instances that accept untrusted CI/CD input — public projects, open registration, or any flow where an outsider can influence pipeline configuration.
  3. If you cannot patch immediately, put the web front end behind authentication or an allowlist and restrict who can submit pipeline configurations.
  4. Review access and job logs on exposed instances for unexpected command execution or runner activity since the release.

Context

This is the second critical RCE in GitLab's CI/CD stack flagged this month, after CVE-2026-90970 in the self-hosted AI Gateway — but the two differ in the detail that decides urgency. The AI Gateway bug needed an authenticated Duo user; this one needs no account at all. The CI/CD regex compiler is turning into a recurring soft spot: it parses attacker-influenced configuration on a server that holds source, secrets, and deploy keys, and it is being hardened release by release. Treat the parser path as hostile input and keep the patch cadence tight.

Related stories