---
title: "CVE-2026-120426: OpenCSG CSGHub - Authorization Bypass"
description: "OpenCSG CSGHub <= 2.6.0-ce contains an authorization bypass caused by injection of a percent-encoded current_user parameter in the unauthenticated file resolve route, letting remote attackers read private repository files, exploit requires crafted file path with injected parameter."
url: https://panop.io/threat-heartbeat/CVE-2026-120426/
---

# CVE-2026-120426 OpenCSG CSGHub - Authorization Bypass

OpenCSG CSGHub <= 2.6.0-ce contains an authorization bypass caused by injection of a percent-encoded current\_user parameter in the unauthenticated file resolve route, letting remote attackers read private repository files, exploit requires crafted file path with injected parameter.

CVSS base score 7.5 /10

High

CISA KEV

Not listed

Public exploit

None known

Authentication

Not required

[View the NVD record ↗](https://nvd.nist.gov/vuln/detail/CVE-2026-120426)

## Details

Type

Authorization Bypass

Impact

Information Disclosure, File System Read

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Published

2 November 2026

Updated

3 November 2026

Weakness

[CWE-639](https://cwe.mitre.org/data/definitions/639.html)

## Vendor fix

Update to the latest version beyond 2.6.0-ce.

Patching closes this CVE. It does not tell you which of your systems run the affected version, or what else is exposed alongside them.

## References

- [https://nvd.nist.gov/vuln/detail/CVE-2026-120426](https://nvd.nist.gov/vuln/detail/CVE-2026-120426)
- [https://www.vulncheck.com/advisories/opencsg-csghub-through-2.6.0-ce-unauthenticated-private-repository-file-read-via-resolve-route](https://www.vulncheck.com/advisories/opencsg-csghub-through-2.6.0-ce-unauthenticated-private-repository-file-read-via-resolve-route)
- [https://github.com/OpenCSGs/csghub-server/blob/v2.6.0-ce/api/middleware/authenticator.go#L210-L226](https://github.com/OpenCSGs/csghub-server/blob/v2.6.0-ce/api/middleware/authenticator.go#L210-L226)
- [https://github.com/OpenCSGs/csghub/blob/v2.6.0-ce/internal/handlers/frontend/resolve.go#L138-L151](https://github.com/OpenCSGs/csghub/blob/v2.6.0-ce/internal/handlers/frontend/resolve.go#L138-L151)
- [https://github.com/OpenCSGs/csghub/blob/v2.6.0-ce/internal/routes/router.go#L302-L303](https://github.com/OpenCSGs/csghub/blob/v2.6.0-ce/internal/routes/router.go#L302-L303)
- [https://github.com/OpenCSGs/csghub/blob/v2.6.0-ce/pkg/server/backend/csghubserver/download.go#L10-L41](https://github.com/OpenCSGs/csghub/blob/v2.6.0-ce/pkg/server/backend/csghubserver/download.go#L10-L41)
- [https://github.com/OpenCSGs/csghub/issues/1586](https://github.com/OpenCSGs/csghub/issues/1586)
- [https://github.com/OpenCSGs/csghub/releases/tag/v2.6.0-ce](https://github.com/OpenCSGs/csghub/releases/tag/v2.6.0-ce)
- [https://hackmd.io/@hieund/csghub-private-repo-file-read-idor](https://hackmd.io/@hieund/csghub-private-repo-file-read-idor)

[← All CVEs](https://panop.io/threat-heartbeat/)

## What this record can't tell you

- Whether you run the affected software, and where
- Whether an attacker can actually reach and exploit it
- The misconfigurations that never get a CVE number
- What it would cost the business, ranked into what to fix first

Panop answers these inside your environment, for this CVE and every other finding.

[Book a demo](https://panop.io/demo)
