A maximum-severity flaw in GitLab's CI/CD regular expression compiler lets an attacker run code on your GitLab server — no login required on instances with open sign-ups. The patch shipped October 12; a working proof-of-concept went public October 13; Censys counts 25,766 internet-facing hosts still on vulnerable versions. This free 30-second self-test tells you if you're at risk. No signup, nothing installed.
Check your GitLab version — on the host running GitLab:
sudo gitlab-rake gitlab:env:info | grep "GitLab version"
Check whether open sign-ups make it worse — the exploit needs a malicious CI config committed to a repo before it can be triggered. If anyone on the internet can register on your instance, that barrier is gone:
Admin area → Settings → General → Sign-up restrictions — or on the host:
grep "signup_enabled" /etc/gitlab/gitlab.rb
Check for signs of past compromise — the exploit runs inside a GitLab application worker, so a successful hit can read CI/CD variables, secrets, and the database. Hunt for unauthenticated hits on the CI lint endpoint since October 12:
grep "ci/lint" /var/log/gitlab/gitlab-rails/production.log
Also review .gitlab-ci.yml commits from the last two weeks for complex regex you didn't authorize, plus unexpected runner registrations or new admin users. Log review is indicative, not conclusive — patching and compromise-checking are two separate jobs.
gitlab-secrets.json. Patching doesn't un-read secrets..gitlab-ci.yml looks innocent until it runs.This page checked one CVE. Vibe-Code Audit scans your repositories for malicious code, injected configs, and leaked secrets — the artifacts this attack leaves behind.
Drop a live version-checker into your blog, docs, or forum post — three lines of HTML.
Get the embed code