A critical GitLab flaw got pointed at Alpine Linux. Here is what happened.
A week after GitLab shipped a fix for CVE-2026-97229, someone tried the exploit against the Alpine Linux project's own server. It did not land.

Key points
- An attacker tried to exploit a critical GitLab bug on the Alpine Linux project's own GitLab server on 28 October 2026, roughly a week after GitLab released the fix, and Alpine says the attempt failed.
- The flaw is tracked as CVE-2026-97229 and carries the maximum CVSS score of 10, meaning it can be triggered by someone who is not logged in.
- GitLab patched the problem on 12 October 2026 in versions 19.4.2, 19.3.5 and 19.2.8 for both Community and Enterprise editions.
- The hosted service at GitLab.com and all GitLab Dedicated tenants were patched before the public advisory went out, so self-managed servers are the exposed population.
- The bug lives in how GitLab compiles regular expressions inside CI/CD pipeline configuration, the small text files that tell GitLab how to build and test code.
Someone tried to break into the Alpine Linux project's GitLab server using a brand new critical flaw, about a week after the fix was out. Alpine Linux is the small, stripped-down version of Linux that sits inside a very large share of the world's Docker containers, so its code pipeline matters well beyond its own community.
The attempt failed. Alpine disclosed it on 28 October 2026 and said it found no sign the attacker got in. The server had already been updated.
What is the actual bug?
It is a flaw in how GitLab reads a piece of its own configuration. GitLab tracks it as CVE-2026-97229, and it scores a 10 out of 10 for severity because an attacker does not need a login to trigger it.
The problem sits in CI/CD, which is the automation GitLab runs to build and test software every time a developer pushes a change. Those jobs are described in a config file, and that file can contain regular expressions, short patterns used to match text. GitLab's code did not validate those patterns tightly enough. A specially crafted one could, under the right conditions, let an unauthenticated user run arbitrary code on the GitLab server itself.
In plain terms: a stranger could hand the server a malformed pattern and end up running their own commands on it.
Which versions are fixed?
GitLab shipped three patch releases on 12 October 2026. Self-managed installs on anything older are exposed.
| Branch | Vulnerable below | Patched version |
|---|---|---|
| 19.4 | 19.4.2 | 19.4.2 |
| 19.3 | 19.3.5 | 19.3.5 |
| 19.2 | 19.2.8 | 19.2.8 |
GitLab's hosted service was already running the patched build when the advisory went live, and GitLab Dedicated customers were updated through an internal release beforehand. The population still at risk is self-managed GitLab, meaning teams that run the server themselves on their own hardware or cloud account.
Why does the Alpine case matter?
Because of what Alpine ships. Alpine Linux is the base image inside an enormous number of containers, the pre-packed software bundles companies run in the cloud. A build server with code-execution on it is the kind of foothold that lets an attacker tamper with what gets shipped downstream, which is the shape of a supply-chain compromise.
Alpine says that did not happen here. The exploit attempt did not succeed, and the project had already applied the update.
The timing is the lesson. One week between a GitLab patch landing and someone firing the exploit at a high-value self-hosted target, as reported by The Hacker News. For a self-managed GitLab admin that is the operational window you have to beat, and it keeps shrinking on critical-rated bugs.
My read: the interesting detail is not that someone tried, it is who they picked. Alpine is a quiet but load-bearing piece of the container ecosystem. Expect more attempts aimed at project infrastructure of that shape, not the final product.
What should a normal GitLab user do?
If you log into GitLab.com in a browser, nothing. That service was patched before the bug was public. If your company runs its own GitLab server, ask whoever maintains it whether it is on 19.4.2, 19.3.5 or 19.2.8, and if not, when it will be.



