Skip to main content
Live Webinar with SANS (June 25)— Agentic CTI Automation for Fun & ProfitRegister Free
Mallory
HighPublic exploit

GitLab CE/EE WebSocket exposed method access control bypass

IdentifiersCVE-2026-5173CWE-749· Exposed Dangerous Method or Function

CVE-2026-5173 is a high-severity improper access control vulnerability in GitLab Community Edition and Enterprise Edition affecting the WebSocket connection layer. In affected versions, the WebSocket handler did not properly restrict which internal server-side methods could be invoked by an authenticated user. As a result, a user with low privileges could authenticate to GitLab, establish a WebSocket connection, and send messages that invoke unintended internal methods that should not have been reachable through that interface. The issue affects GitLab CE/EE versions from 16.9.6 before 18.8.9, 18.9 before 18.9.5, and 18.10 before 18.10.3.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation allows an authenticated attacker to bypass intended method-level access controls in the WebSocket interface and invoke internal server-side functionality. Based on the available reporting and CVSS vector, the primary impact is high confidentiality loss, including exposure of sensitive data, with limited unauthorized modification of data. The vulnerability is remotely exploitable, requires only low privileges, and no user interaction. Reported impact does not indicate direct availability impact.

Mitigation

If you can’t patch tonight, do this now.

No workaround or temporary mitigation was documented by GitLab. If immediate patching is not possible, the information currently available does not provide a vendor-supported mitigation beyond reducing exposure to authenticated untrusted users and prioritizing upgrade. The recommended action is to apply the official patched release.

Remediation

Patch, then assume compromise.

Upgrade self-managed GitLab CE/EE instances to a fixed release: 18.8.9, 18.9.5, 18.10.3, or later as appropriate for the deployed branch. GitLab stated the fix restricts which methods can be invoked through the WebSocket connection handler. GitLab also stated that the official patch is the vendor-supported remediation.
PUBLIC EXPLOITS

Exploits

1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.

VALID 1 / 1 TOTALView more in app
CVE-2026-5173MaturityPoCVerified exploit

This repository is a small standalone Python proof-of-concept for CVE-2026-5173 targeting GitLab WebSocket/GraphQL functionality. It contains two files: a single executable Python script (CVE-2026-5173.py) and a README with usage, affected versions, and lab setup guidance. The exploit logic is straightforward: it normalizes a supplied target URL, converts it to a WebSocket endpoint by appending /-/cable, sets an Origin header matching the target, connects with the Python websockets library, subscribes to the GitLab ActionCable GraphqlChannel, and then iterates through a hardcoded list of candidate GraphQL methods. For each method it sends an ActionCable message with action=execute and a GraphQL query intended to retrieve user or node data. Responses containing "data" or "result" are treated as signs of successful unauthorized access and printed to stdout. Main capabilities: WebSocket connection to GitLab, GraphqlChannel subscription, enumeration of multiple likely sensitive GraphQL methods, and display of returned data that may include users, projects, namespaces, statistics, or internal/admin-related objects. There is no post-exploitation payload, persistence, shell, or command execution. The script is best characterized as a research PoC for unauthorized data access validation rather than a full weaponized exploit. Notable implementation detail: although the README claims support for a Personal Access Token and the CLI accepts --token, the token is never used in headers, cookies, or messages. That means authentication handling is incomplete in the actual code. Overall, this is a minimal network/web exploit PoC focused on probing GitLab's /-/cable WebSocket endpoint for unauthorized GraphQL method execution and data disclosure.

0xBlackashDisclosed Apr 9, 2026pythonmarkdownwebnetwork
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
GitLabGitlabapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware

Malware families riding this exploit, with evidence and IOCs.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity11

Community discussion across Reddit, Mastodon, and other social sources.