CVE-2026-10053 Overview
GitLab has remediated a path traversal vulnerability [CWE-22] in the GitLab CE/EE package registry. The flaw affects all versions from 18.8 before 19.0.6, 19.1 before 19.1.4, and 19.2 before 19.2.2. Under specific conditions, an authenticated user can exploit the flaw to achieve remote code execution on the GitLab instance. The vulnerability requires low privileges and no user interaction, but attack complexity is high. Successful exploitation impacts confidentiality, integrity, and availability, and the scope changes because the compromise extends beyond the vulnerable component.
Critical Impact
Authenticated attackers can leverage path traversal in the GitLab package registry to execute arbitrary code on the underlying server, potentially compromising source code, CI/CD pipelines, and downstream build artifacts.
Affected Products
- GitLab CE/EE versions 18.8 through 19.0.5
- GitLab CE/EE versions 19.1 through 19.1.3
- GitLab CE/EE versions 19.2 through 19.2.1
Discovery Timeline
- 2026-08-23 - CVE-2026-10053 published to NVD
- 2026-08-25 - Last updated in NVD database
Technical Details for CVE-2026-10053
Vulnerability Analysis
The vulnerability resides in GitLab's package registry, which stores software packages published by users and CI/CD pipelines. The registry accepts file path components as part of package upload or retrieval operations. Insufficient validation of these components allows an attacker to traverse outside the intended storage directory.
An authenticated user with permission to interact with the package registry can craft input that resolves to arbitrary filesystem locations. Writing attacker-controlled content to sensitive paths on the GitLab server can enable code execution in the context of the GitLab application. The scope change reflected in the CVSS vector indicates the exploit impacts resources beyond the package registry component itself.
Because GitLab runs application code, executes CI/CD jobs, and stores source repositories, code execution on the instance exposes source code, CI runners, secrets, and administrative interfaces.
Root Cause
The root cause is improper limitation of a pathname to a restricted directory [CWE-22] within the package registry upload or retrieval logic. User-supplied path segments are concatenated with a base directory without canonicalization or validation to reject sequences such as ../ and absolute paths.
Attack Vector
Exploitation requires network access to the GitLab instance and valid authenticated credentials. The attacker submits a crafted request to the package registry endpoint that includes traversal sequences in the package or file name. The high attack complexity indicates that specific preconditions must be met, such as a particular package type, project configuration, or registry state. See the GitLab Work Item 601596 and the HackerOne Report #3754194 for technical details.
No public proof-of-concept exploit is currently available.
Detection Methods for CVE-2026-10053
Indicators of Compromise
- Package registry requests containing ../, ..\, URL-encoded traversal sequences (%2e%2e%2f), or absolute paths in package or file name parameters.
- Files written to unexpected locations outside the configured package storage directory, particularly under GitLab application or configuration directories.
- New or modified files in web-accessible or executable paths owned by the git or gitlab service account.
- Unexpected child processes spawned by the GitLab Rails or Sidekiq workers following package upload activity.
Detection Strategies
- Inspect GitLab production logs (production.log, api_json.log) for package registry endpoints containing traversal patterns in path parameters.
- Correlate authenticated package upload events with filesystem write events outside the expected packages storage root.
- Baseline normal package registry usage per project and alert on anomalous package names, sizes, or upload frequencies from a single user.
Monitoring Recommendations
- Forward GitLab application and web server logs to a centralized analytics platform for pattern matching against traversal signatures.
- Enable filesystem integrity monitoring on GitLab application directories and configuration paths.
- Monitor authentication events for the accounts that interact with the package registry, especially newly created or service accounts.
How to Mitigate CVE-2026-10053
Immediate Actions Required
- Upgrade GitLab CE/EE to version 19.0.6, 19.1.4, or 19.2.2 or later, depending on the deployed branch.
- Audit package registry access logs for evidence of exploitation attempts prior to patching.
- Review and rotate GitLab secrets, runner tokens, and personal access tokens if compromise is suspected.
- Restrict package registry write access to trusted users and CI/CD service accounts.
Patch Information
GitLab has released fixed versions 19.0.6, 19.1.4, and 19.2.2 that remediate the path traversal condition in the package registry. Refer to the GitLab Work Item 601596 for remediation details and the HackerOne Report #3754194 for the coordinated disclosure record.
Workarounds
- Disable the package registry feature at the instance or group level if patching cannot be performed immediately.
- Enforce network-level restrictions that limit package registry API access to trusted CI/CD infrastructure.
- Require administrator approval for new user registrations to reduce the pool of authenticated attackers.
# Verify installed GitLab version and upgrade to a fixed release
sudo gitlab-rake gitlab:env:info | grep "GitLab information" -A 5
# Debian/Ubuntu upgrade example
sudo apt-get update && sudo apt-get install gitlab-ee=19.2.2-ee.0
# RHEL/CentOS upgrade example
sudo yum install gitlab-ee-19.2.2-ee.0
# Optional: disable the package registry feature while planning the upgrade
# Edit /etc/gitlab/gitlab.rb
# gitlab_rails['packages_enabled'] = false
sudo gitlab-ctl reconfigure
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

