Konfirmity
All security advisories

//security advisory

GitLab Critical Patch: Remote Code Execution Without Login

On 21 October 2026 GitLab fixed CVE-2026-110264, a critical flaw that can let an attacker run code on a self-managed GitLab server without logging in. It reaches back to GitLab 7.0, and servers patched on 12 October are still affected. GitLab offers no workaround: upgrade to the fixed release for your version.

On this page
  1. Are you affected?
  2. What to do
  3. Fixed versions
  4. Check your version
  5. The critical flaw
  6. The other 11 fixes
  7. Look for attempts
  8. Timeline
  9. Recording it for compliance
  10. FAQ
  11. Sources

Are you affected by CVE-2026-110264?

Only self-managed GitLab needs action. Find the row that describes you.

  • You run your own GitLab server

    Linux package, Docker, Helm chart or source install, CE or EE

    Act now

    Upgrade today. Every version from 7.0 is affected, and GitLab offers no workaround. Find your fixed version

  • You patched GitLab on 12 October

    Running 19.4.2, 19.3.5 or 19.2.8

    Act now

    You are still affected. That release fixed an earlier regex flaw. This one needs the next patch up: 19.4.3, 19.3.6 or 19.2.9. How the two differ

  • You run GitLab 18.10 or older

    Any version before the 18.11 line

    Act now

    No fixed release exists for your version. Upgrade to 18.11.13 or later, which may take several steps. Plan the upgrade path

  • You use GitLab.com

    GitLab’s hosted service

    Protected

    Nothing to do. GitLab.com already runs the fixed version.

  • You use GitLab Dedicated

    Single-tenant hosted by GitLab

    Protected

    Nothing to do. Tenants on 19.3.5-internal0, 19.4.2-internal0 or later already have the fixes.

What to do

Do the first three today. The patch closes the critical flaw on every supported line.

  1. List every GitLab server you run

    Include Geo secondaries (read-only replicas), staging, disaster recovery and test instances. A forgotten instance is still a way in.
  2. Check each version

    Run the command for your install type, or open /help while signed in. How to check
  3. Install the fixed patch for your line

    Stay on the minor version you run, for example 19.4.x to 19.4.3. A patch upgrade needs no extra upgrade stops. Fixed versions
  4. On 19.2 or older, plan a move to 19.3.6 or later

    The older backports carry only the critical fix. The other 11 fixes, including two rated high, need 19.3.6, 19.4.3 or 19.5.1. Moving across minor versions may need upgrade stops. Plan the upgrade path
  5. Look for exploitation attempts

    Load GitLab’s two detection rules and run them over recent logs. What to look for

Fixed versions

Released 21 October 2026 for both Community Edition and Enterprise Edition, on every installation method.

Fixed GitLab version for each release line
If you runUpgrade toWhat it fixes
19.519.5.1All 12 fixes
19.419.4.3All 12 fixes. Includes database migrations
19.319.3.6All 12 fixes. Includes database migrations
19.219.2.9Critical fix only
19.119.1.9Critical fix only
19.019.0.10Critical fix only
18.1118.11.13Critical fix only
18.10 and olderNo fixed releaseUpgrade to a supported line

GitLab normally patches only the three newest minor versions. It backported the critical fix to 19.2, 19.1, 19.0 and 18.11 because of its severity.

Downtime: only 19.4.3 and 19.3.6 include database migrations. A single-node server stays down until they finish. Multi-node installations can follow the zero-downtime upgrade procedure.

Check your version

Compare the result with the table above. In the browser, signed-in users can also see the version on the /help page.

Linux package
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
Docker
docker exec <container> cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
Helm chart
helm list --all-namespaces | grep -i gitlab

For the Helm chart, read the APP VERSION column, not the chart version. If you set global.gitlabVersion, that value wins.

API, any install
curl --header "PRIVATE-TOKEN: <your-token>" \
  "https://gitlab.example.com/api/v4/version"

The critical flaw: CVE-2026-110264

CriticalCVSS 10.0 · CE/EE · every version from 7.0

GitLab uses Ruby’s built-in regular expression engine, Onigmo. When that engine compiles a specially crafted regular expression, a number overflows. GitLab says an attacker without an account could use this, under certain conditions, to run code on the server.

The flaw is in the engine, not in one GitLab feature. That is why it reaches back to GitLab 7.0, released in 2014, according to The Hacker News.

How it differs from the 12 October fix

  • CVE-2026-97229, fixed on 12 October, was a similar overflow reached through CI/CD configuration. It affected only 19.2 to 19.4.
  • CVE-2026-110264 is a separate flaw with a wider reach. A server upgraded to 19.4.2, 19.3.5 or 19.2.8 is still exposed.
  • Both were reported by the same researcher, joaxcar, through GitLab’s HackerOne bug bounty program.

What is still unknown

  • The attack path. GitLab has not said which feature an attacker uses to reach the engine. The name of one detection rule points at rendering Org mode files (a plain-text document format GitLab displays like Markdown), but GitLab has not confirmed it.
  • A workaround. GitLab published none. Without a known attack path, no setting can be trusted to block it.
  • Exploitation. GitLab’s advisory does not report attacks, and the flaw was not in the CISA KEV catalog at publication. Rapid7 reproduced code execution for the 12 October flaw within a day of its release.

GitLab makes the issue reports public 90 days after the fix, so full details are expected in January 2027.

The other 11 fixes

Fixed in 19.3.6, 19.4.3 and 19.5.1 only. The older backport releases do not include them. GitLab rates two high, five medium and four low.

  • Account takeover through SAML and LDAP auto-linking

    CVE-2026-15723 · CE/EE, from 10.1

    High

    CVSS 8.2

    A logged-in user could take over an existing LDAP-backed account without the owner doing anything.

    Who should care: Instances with both OmniAuth SAML and LDAP auto-linking turned on.

  • Cache poisoning of OAuth and OpenID Connect discovery

    CVE-2026-112212 · CE/EE, from 18.3

    High

    CVSS 7.5

    An attacker without an account could poison a cached discovery document so some sign-in flows point to a server they control.

    Who should care: Instances behind a shared cache that use GitLab as an OAuth or OIDC provider.

  • read_api tokens could create work items

    CVE-2026-12664 · CE/EE, from 18.2

    Medium

    CVSS 6.8

    A read-only API token could fetch a project’s incoming email address and use it to create work items.

    Who should care: Anyone who hands out read_api tokens to integrations or people.

  • SAML and LDAP membership lock not fully enforced

    CVE-2026-16255 · EE, from 12.0

    Medium

    CVSS 5.9

    Membership requests made before the lock was switched on could still be granted, adding members outside your identity provider.

    Who should care: Instances that rely on the instance-wide membership lock.

  • Internal credentials in response headers

    CVE-2026-105777 · CE/EE, from 17.6.5

    Medium

    CVSS 4.3

    Internal server credentials could leak through response headers that were not filtered.

    Who should care: All self-managed instances.

  • Group milestones API leaks private projects

    CVE-2026-13319 · CE/EE, from 15.10

    Medium

    CVSS 4.3

    Any logged-in user could read milestone titles, descriptions and full project paths from private projects they are not a member of.

    Who should care: Instances with private projects and many user accounts.

  • Paid AI features without a subscription

    CVE-2026-112378 · EE, from 17.8

    Medium

    CVSS 4.3

    A logged-in user could reach paid GitLab Duo features without a valid subscription.

    Who should care: Mostly a licensing issue. Low risk to your data.

  • Confidential issue titles leaked through caching

    CVE-2026-105711 · CE/EE, from 15.0

    Low

    CVSS 3.5

    When a public merge request referenced a confidential issue in a private project, other users could read that issue’s title.

    Who should care: Instances that mix public and private projects.

  • Merge request approval policy bypass

    CVE-2026-14288 · EE, from 17.4

    Low

    CVSS 3.1

    A logged-in user could get past a required approval policy on a protected branch while approval rules were syncing.

    Who should care: Teams that use approval policies as an audit control.

  • Read-only users could delete vulnerability records

    CVE-2026-112326 · EE, from 17.8

    Low

    CVSS 3.1

    An error during security scanning could delete existing vulnerability records, triggered by a user with read-only access.

    Who should care: Teams that keep vulnerability findings in GitLab as evidence.

  • Group Owners could override the Duo admin lock

    CVE-2026-103515 · EE, from 19.2

    Low

    CVSS 2.7

    A group Owner could re-enable Amazon Q, sending data to a third-party AI service, after an administrator had locked Duo off.

    Who should care: Instances that lock AI features for data residency reasons.

“From” is the first affected version. EE means only Enterprise Edition is affected. For CVE-2026-105777, GitLab’s description says no login is needed, but its CVSS score assumes a logged-in user.

Look for exploitation attempts

GitLab published two detection rules for CVE-2026-110264 in its open-source TLDR framework. They run against the application logs of a self-managed instance.

  • Onigmo native worker crash: a GitLab worker crashing inside the regular expression engine.
  • Org mode render error burst: a sudden run of errors while rendering Org mode files.

Get both from the TLDR repository. They are written in Sigma, a shared rule format that converts to the query language of most log monitoring tools (SIEMs). GitLab’s detection guide explains how to deploy them and what to do when one fires.

A crash is a reason to investigate, not proof of compromise. If you find signs of a successful attack, treat the server as compromised. Code would run as the account GitLab itself runs as, so rotate CI/CD variables, runner tokens, deploy keys and access tokens held on it.

The descriptions above are our reading of the rule names. Check each rule’s own page for the log sources and fields it needs.

Timeline

This is the fourth regex engine flaw from the same researcher in a month, and the first to reach versions before 19.2.

  1. 2026-09-23

    GitLab fixes CVE-2026-93577 and CVE-2026-89078, two regex engine code execution flaws that need a logged-in account.

    The Hacker News

  2. 2026-10-12

    GitLab fixes CVE-2026-97229, a CVSS 10.0 regex flaw reached through CI/CD configuration, in 19.4.2, 19.3.5 and 19.2.8.

    GitLab patch release post

  3. 2026-10-13

    Rapid7 reproduces code execution for CVE-2026-97229 on GitLab 19.4.1.

    Rapid7

  4. 2026-10-21

    GitLab releases seven versions fixing CVE-2026-110264 and 11 other flaws, and publishes two detection rules.

    GitLab patch release post

Recording it for compliance

GitLab holds your source code and often your deployment secrets, so auditors will expect a dated record of this patch.

Controls to record this event against
FrameworkControlWhat to record
ISO 27001:2022A.8.8Management of technical vulnerabilities. Record each GitLab instance, its version before and after, and the upgrade date.
ISO 27001:2022A.8.4Access to source code. GitLab holds it, so note that the risk to it was assessed.
ISO 27001:2022A.8.32Change management. Record the emergency upgrade and any downtime.
ISO 27001:2022A.5.25, A.5.26Assessment of and response to security events, if a detection rule fires.
SOC 2CC7.1Identifying newly discovered vulnerabilities.
SOC 2CC7.2Monitoring for anomalies, including the log review.
SOC 2CC8.1Authorising and recording the emergency change.

Evidence to keep: when you assessed it, the list of instances, versions before and after, upgrade and downtime times, the detection results, and any secrets you rotated.

For how these controls work day to day, see our guides to ISO 27001 vulnerability management, SOC 2 vulnerability management, ISO 27001 change management and SOC 2 secrets management.

GitLab CVE-2026-110264 FAQ

Short answers. The sections above have the detail and sources.

What is CVE-2026-110264?

CVE-2026-110264 is a critical flaw in the regular expression engine inside GitLab. A specially crafted regular expression causes an integer overflow when it is compiled, and GitLab says this could let an attacker run code on the server without logging in. GitLab rates it 10.0, the highest CVSS score.

Which GitLab versions fix CVE-2026-110264?

GitLab 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 and 18.11.13, released on 21 October 2026. Upgrade to the one that matches your current minor version. Anything older than 18.11 has no fixed release and must be upgraded to a supported version.

I patched GitLab on 12 October. Am I still affected by CVE-2026-110264?

Yes. The 12 October releases, 19.4.2, 19.3.5 and 19.2.8, fixed an earlier regex flaw, CVE-2026-97229. CVE-2026-110264 is a separate flaw, and the fixed versions are one patch higher: 19.4.3, 19.3.6 and 19.2.9.

Is there a workaround for CVE-2026-110264?

No. GitLab has not published a workaround or said which feature an attacker uses to reach the flaw, so no setting is known to block it. Upgrading is the only fix.

Is CVE-2026-110264 being exploited?

GitLab's advisory does not report any attacks, and the flaw was not in the CISA Known Exploited Vulnerabilities catalog when this advisory was published. GitLab has published two detection rules so self-managed administrators can look for attempts.

Do GitLab.com or GitLab Dedicated customers need to do anything?

No. GitLab.com already runs the fixed version. GitLab Dedicated tenants on 19.3.5-internal0, 19.4.2-internal0 or later already have the fixes.

Will upgrading GitLab for CVE-2026-110264 cause downtime?

Only on 19.4.3 and 19.3.6, which include database migrations. The other fixed versions have none. On a single-node server GitLab stays down until the migrations finish. Multi-node installations can apply the patch without downtime by following GitLab's zero-downtime upgrade procedure.

Sources