GitLab has released emergency patches for CVE-2026-97229, scored 10.0 — the top of the scale, which is rare enough to be worth pausing on.

The flaw is an integer overflow arising from insufficient validation in the CI/CD regular expression compiler. A crafted regular expression in CI configuration leads to arbitrary code execution on the server. The vector is network-reachable, the complexity is low, no privileges are required and no user has to do anything.

It affects both Community and Enterprise editions.

Who is exposed

GitLab.com is already patched. GitLab Dedicated requires no action. The exposed population is self-managed installations, which is the version organisations run inside their own networks — and, as it happens, the version that tends to hold the most.

That is worth saying plainly because of what a GitLab server is. It holds source code, CI configuration, deployment credentials and the pipeline that pushes to production. We wrote recently about an operation that reached every victim outside one sector through GitLab CI/CD variable stores and repository history — and that attacker needed stolen credentials to get in. This needs none.

The version numbers do not agree, and that is a problem

Affected releases are 19.2 before 19.2.8, 19.3 before its fix, and 19.4 before 19.4.2.

For 19.3, coverage splits: some outlets name 19.3.4 as the fixed release, others name 19.3.5. That is not a trivia question when the instruction is to patch immediately.

It gets more awkward. There is a reported known issue in 19.3.4 where merge request pages break when a particular integration is enabled, with a fix planned for 19.3.5. So one candidate for "the version that fixes your critical vulnerability" is also the version with a visible functional regression — which is exactly the kind of thing that stalls a change approval.

Check GitLab's own advisory for the 19.3 number. Do not take it from a summary, including this one.

Two smaller discrepancies in the reporting of this release, for completeness: most sources date it to 12 October, one says the 8th; and the total number of issues fixed in the same release is given as 22 by some and 24 by others. Neither changes what you do.

Not in the exploited catalogue

We checked CISA's Known Exploited Vulnerabilities feed directly. CVE-2026-97229 is not in it, and the catalogue has not been updated since 8 October.

Absence from that catalogue means CISA has not confirmed exploitation. It does not mean nobody is exploiting it — the catalogue records what has been established, and it lags. The same feed still does not list the AhsayCBS flaws that Huntress watched being exploited on 7 October.

No exploitation of the GitLab flaw has been reported, and no workaround has been published. Patching is the remediation.

Why a regex compiler

The location is the interesting part. Nobody attacks a regular expression engine because it is a tempting target; they attack it because it is a parser that accepts input from somewhere untrusted and does arithmetic on lengths.

That is the second such story this week. The AnyDesk flaw published on 8 October was a payload length trusted before validation, with a 16-byte header added in 32-bit arithmetic so the allocation wrapped small. Different product, different language, same shape: a number that is assumed to be small, arithmetic that silently wraps, and a buffer sized by the wrong answer.

Parsers remain where this class of bug lives, and CI systems are full of them because a pipeline definition is a document the server has to interpret.

What to do

  • Upgrade self-managed GitLab now. 19.2.8 and 19.4.2 are agreed; confirm the 19.3 target against GitLab's advisory.
  • If you are on 19.3 and the known issue affects you, that is a conversation to have today rather than a reason to wait. The vulnerability is unauthenticated and scored 10.0.
  • Check whether your GitLab is reachable from the internet at all. For many self-managed installs it does not need to be.
  • After patching, treat credentials held in CI/CD variables as potentially exposed if your instance was reachable. Rotation is cheap relative to the alternative.
  • Read the rest of the release. Twenty-odd other issues shipped with it.

What is not established

  • Which 19.3 release is the fix. Sources conflict and only the vendor advisory settles it.
  • Whether this is being exploited. Nothing has been reported and it is not in CISA's catalogue.
  • The exact release date, 8 or 12 October, and the total issue count.
  • How many self-managed instances are internet-facing, which nobody has measured publicly.
  • Whether a proof of concept exists privately. A 10.0 in a widely deployed product does not usually stay theoretical for long.