Patch GitLab Tonight. Then Rotate, Because the Read Already Happened.
The vendor called both flaws high-severity while scoring one at maximum, and the remediation your change board will approve covers only half of what an exposed instance already lost.
GitLab described two high-severity vulnerabilities. One carries a maximum CVSS vector and sits in CISA's KEV catalog, with probing already observed. A patch SLA keyed to the vendor's adjective instead of the vector and the KEV status puts this in Thursday's change window while scanners knock today. GitLab's hosted service is already on fixed code. Self-managed is the entire exposed cohort.
An unauthenticated read of any file on a GitLab host reaches gitlab-secrets.json and gitlab.rb, which hold the encryption keys protecting CI/CD variables, database credentials and token material. One successful read yields durable pipeline access that survives your patch. On an instance that was internet-exposed during the probing window, patch-only remediation reads clean and surfaces later in someone else's incident report.
The hunt, before the rotation
Detection sits in web and reverse-proxy logs. Traversal encodings against commit endpoints: ../, ..%2f, %2e%2e%2f and double-encoded variants. Then successful 200 responses referencing secrets or configuration paths under /var/opt/gitlab. The window runs from advisory publication to the remediation timestamp. A hit that predates the patch moves this from vulnerability management to incident response. The rotation list is long: CI/CD variables, personal access tokens, deploy keys, runner registration tokens, SSH host keys, SAML/OIDC client secrets, and every downstream cloud credential a pipeline can reach. Old values get confirmed dead.
The second GitLab flaw is an AI-enablement decision
CVE-2026-87719 requires an authenticated Duo Chat user, a bar any phished developer or stale service account clears, and returns Advanced Search settings including stored passwords. Advanced Search is Elasticsearch-backed and indexes repository content, so disclosed search-tier credentials open a searchable copy of the source, including secrets committed in history. Duo Chat enablement is a risk decision with a named owner; on Enterprise Edition the sequence is disable, patch, verify, then rotate the search credentials.
The KEV batch underneath it
In the same window CISA added five actively exploited flaws across JFrog Artifactory, ConnectWise ScreenConnect and MikroTik RouterOS, per The Hacker News. All five sit on initial-access paths: build pipeline, remote access, network edge. Each product needs a different response beyond patching.
| Product | Exposure class | Why patching is not remediation |
|---|---|---|
| JFrog Artifactory | Artifact repository / build pipeline | Patching does not un-poison artifacts already published |
| ConnectWise ScreenConnect | Remote access / RMM | RMM traffic is allowlisted by default; audit session logs across the exposure window |
| MikroTik RouterOS | Network edge OS | Persistence lives in config drift — diff against known-good, disable WAN-side management |
The sources converge on ConnectWise. CSO Security Leadership notes a five-day disclosure-to-patch gap on a critical authentication failure in the RMM product ransomware affiliates have historically mass-exploited. Five days on a critical auth bypass is a renewal-negotiation number, and disclosure-to-patch latency is turning up as a scored, contractual criterion in RMM renewals. Shadow instances are the second query: MSP-managed consoles and lab hosts absent from the CMDB are what survives the sweep.
A pre-auth file read on self-managed GitLab exposes CI/CD key material. Patching without rotation leaves those credentials valid and the attacker in the pipelines.
What to do
Patch every self-managed GitLab instance tonight and verify by version banner rather than ticket status; if change control blocks you, terminate external reachability to the commit interface at the WAF or reverse proxy as an interim control.
Rotate every secret reachable from a GitLab host — CI/CD variables, PATs, deploy keys, runner registration tokens, SAML/OIDC client secrets and downstream cloud credentials — for any instance that was internet-exposed since the advisory, and confirm old values fail.
Query the CMDB and your external attack surface for JFrog Artifactory, ConnectWise ScreenConnect and MikroTik RouterOS within 48 hours, including MSP-managed and lab instances, and isolate anything internet-facing that cannot be patched.