'; } else{ echo ''; } echo '
|
|
|||
Release Date:2026/9/21
Rule Name:CVE-2026-85706:GitLab CE/EE Unauthenticated Arbitrary File Read via Forged File.Path Parameter
Severity:critical
CVE ID:CVE-2026-85706
| Descripiton:
|
GitLab CE/EE self-managed instances (all versions from 18.7 before 19.1.8, 19.2 before 19.2.6, and 19.3 before 19.3.2) expose an unauthenticated arbitrary file read in the repository commits and files APIs. lib/api/helpers/commits_body_uploader_helper.rb#file_params_from_body_upload trusts the client-supplied file.path parameter (line 18) and only performs File.exist? (line 19) before reading the path, selecting the read branch by the request-level Content-Type parameter; the read runs before authenticate! - the affected route entries only enforce require_gitlab_workhorse!, and the vendor fix inserts authenticate! on all three routes (commit 0ff7b6b2). file.path is normally injected only by the Workhorse middleware on the internal Workhorse-to-Puma link and never appears in external traffic, so any external request carrying file.path with an absolute-path value is a forged upload-metadata primitive. An unauthenticated remote attacker can read any file accessible to the git user, including gitlab-secrets.json / secrets.yml (Rails secret_key_base), database.yml and SSH private keys; on the application/x-www-form-urlencoded branch the file bytes reach Rack::Utils.parse_nested_query, whose invalid %-encoding error message is echoed in the HTTP 400 response body, leaking content. CISA lists CVE-2026-85706 in the KEV catalog with exploitation observed in the wild. This rule detects client-submitted file.path parameters with absolute-path values on the affected repository API routes. This rule supports to defend the A1: Broken Access Control of OWASP Top 10 - 2021.
Other reference:None
| Solution:
|
Update vendor patches.