Home/ Blog/ Security news/ Article
Blog · Security news

A logged-in GitLab user can write files across the server through the package registry (CVE-2026-10053)

CVE-2026-10053 lets a logged-in GitLab user write files across a self-managed server via the package registry. Fixed in 19.2.2, 19.1.4, 19.0.6. Update now.

A single sheet slipping through a gap into a tall stack of archive boxes

The patch for this one is eleven days old. What changed today is proof. On August 23 a public reproduction lab appeared for CVE-2026-10053, a path-traversal flaw in GitLab's package registry, and it deterministically reproduces the bug on an unpatched server. No new vulnerability landed. A public, repeatable demonstration did, and that is what actually moves a defender's timeline: doubt about whether the flaw is reachable is now gone.

The affected component is the package registry, the part of GitLab that hosts software packages (npm, and others) for your projects. A path-traversal flaw means an attacker supplies a crafted path that escapes the directory the code intended to write into, so bytes land somewhere they should not. GitLab rates it CVSS 8.5 and describes it as allowing a logged-in user to reach remote code execution under certain conditions. The severity math tells you the shape of the threat: it is reachable over the network, needs only a low-privilege account rather than an admin one, and carries a high attack-complexity rating, meaning the attacker has to line up specific conditions rather than fire a one-shot request. It was reported through GitLab's HackerOne program by a researcher credited as invisiblemeerkat.

Which versions are exposed

GitLab shipped the fix on August 12 across three release branches. GitLab.com already runs the patched code, so this is a self-managed problem: the exposed population is organizations running their own GitLab Community or Enterprise Edition server.

Release branchAffectedFixed in
18.8 through 19.018.8 up to 19.0.619.0.6
19.1before 19.1.419.1.4
19.2before 19.2.219.2.2
Affected and fixed GitLab CE/EE versions for CVE-2026-10053. Source: GitLab patch release, August 12, 2026.

What the public lab proves, and what it does not

Read the public lab carefully, because the headline word around this CVE is doing more work than the current evidence supports. The reproduction lab stands up a vulnerable 19.2.1 instance against a patched 19.2.2 one and confirms that a logged-in user can write attacker-controlled bytes to arbitrary paths writable by the git OS user through the package-registry endpoint. Its author is emphatic that it stops short of full command execution on its own: the written files land with 0644 permissions, which is not enough to overwrite an executable target on its own, so reaching code execution needs additional primitives the lab does not supply.

That distinction is the practitioner takeaway. GitLab's advisory language ("could have allowed remote code execution") is correct as a ceiling, but the realistic near-term risk that is publicly demonstrated today is a strong arbitrary-file-write, not turnkey command execution. Neither panic nor complacency is the right read. A file-write as the git user is a serious primitive on its own, an attacker who can drop or clobber files in a repository, a CI configuration, or a hook directory has real options, and history shows write primitives get chained to execution over time. So the correct posture is to patch on the RCE assumption while sizing your immediate incident risk to what is actually proven.

How exposed you actually are

The gate on this flaw is who can publish to your package registry. The CVSS vector's high attack complexity and low-privilege requirement reflect a real precondition: the attacker needs an account and the conditions to reach the vulnerable path. On a tightly controlled internal instance where only a handful of trusted engineers can publish packages, that barrier is meaningful. On an instance with open sign-up, or one shared with many low-trust users, contractors, or a large open contributor base, that barrier largely collapses, and you should treat this as reachable by anyone who can register.

This is the recurring shape of self-hosted developer-tool bugs. We saw the same self-managed exposure in a GitLab notebook-diff flaw with a public exploit and a no-login session-hijack issue earlier this year, and the same path-traversal-to-file-access pattern in tools like MISP's STIX converter and Windmill. The platform runs deep inside your network with broad filesystem access, so a mid-severity input-handling bug turns into a server-level problem.

Detection: how you would know

Patching closes the hole. It does nothing for the window before you patched, and that is the question a mature team asks next. The observable here is file writes by the git OS user landing outside the expected package-storage paths, files appearing in repository directories, hook paths, or CI-config locations that no legitimate push explains. Watch too for package-publish requests whose package names or paths carry traversal sequences. A managed detection setup should be alerting on anomalous writes by service accounts like git, because that behavior is the same whether the entry point is this CVE or the next one. If you cannot answer "were we hit before we patched," that gap is itself the finding.

Update now, then lock down who can publish packages

Update self-managed GitLab to 19.2.2, 19.1.4, or 19.0.6, whichever matches your branch. GitLab.com needs no action. If you cannot patch immediately, reduce the blast radius: review who can publish to the package registry, close open registration if you do not need it, and restrict registry access to the accounts that genuinely require it. Then hunt, check for unexpected files written by the git user in repository, hook, and CI paths over the window since your instance first ran an affected version. The exploitation status today is honest and worth stating plainly: not in CISA's known-exploited catalog, no confirmed in-the-wild abuse, an EPSS score near the middle of the pack, and a public reproduction lab that proves the file-write but not full code execution. That is a patch-this-week problem, not a drop-everything one, and the difference is exactly the kind of call the mislabeled "RCE" headline will not make for you.

Frequently asked questions

What is CVE-2026-10053?

CVE-2026-10053 is a path-traversal vulnerability in GitLab's package registry, rated CVSS 8.5. It lets an authenticated, low-privilege user write files to paths owned by the git OS user on a self-managed GitLab server. GitLab states it could lead to remote code execution under certain conditions.

Which GitLab versions are affected and fixed?

It affects GitLab Community and Enterprise Edition from 18.8 up to the fixed releases. GitLab patched it on August 12, 2026 in versions 19.0.6, 19.1.4, and 19.2.2. Self-managed instances on earlier builds are exposed; GitLab.com already runs the fixed code.

Is CVE-2026-10053 being exploited in the wild?

There is no confirmed in-the-wild exploitation as of publication, and it is not in CISA's known-exploited catalog. A public reproduction lab appeared on August 23, 2026, and its EPSS score sits near the middle of the range. Treat it as a patch-this-week issue.

Does the public lab prove remote code execution?

No. The public lab demonstrates arbitrary file write as the git OS user, and its author explicitly states it is not a standalone remote-code-execution exploit. The written files carry 0644 permissions, so reaching code execution would require additional primitives the lab does not provide.

How do I detect exploitation attempts against this flaw?

Watch for files written by the git OS user outside the expected package-storage paths, such as unexpected files in repository, hook, or CI-config directories. Also flag package-publish requests whose names or paths contain directory-traversal sequences. Anomalous writes by service accounts are the core signal.

Who is most at risk from CVE-2026-10053?

Organizations running self-managed GitLab on an affected version are exposed, and risk scales with who can publish to the package registry. Instances with open sign-up or many low-trust users face the highest risk, since the authenticated-user barrier the CVSS score assumes largely disappears.

See what Suriq finds on your own servers.

Agentless checks for uptime and your cloud, a lightweight agent for detection on each server, and one console that ranks and explains what it finds.