CVE Catalog

CVE-2026-59185

HighCVSS 8.5
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.32%

25th percentile - higher than 25% of all known CVEs

Summary

In identrail prior to 1.0.2, the GitHub connect/complete endpoint accepts installation_id without verifying the installation belongs to the caller's workspace. An authenticated tenant can supply another customer's installation_id to read the victim's private repositories or drive posture scans if identrail's GitHub App is installed there.

Risk Assessment

An authenticated tenant can access another organization's private repositories and metadata. Risk of data leakage and tenant isolation breach.

Recommendation

Update identrail to version 1.0.2 or later, which verifies that installation_id belongs to the caller's workspace.

Related vulnerabilities

Original NVD description (English source)

identrail is a machine identity security platform for AWS, GitHub/OIDC, and Kubernetes. Prior to 1.0.2, the default-on `POST /v1/workspaces/:workspace_id/projects/:project_id/github/connect/complete` endpoint in `internal/api/router.go` accepts `installation_id` from the request body or `X-GitHub-Installation-ID` header without verifying the installation belongs to the caller's workspace. `CompleteGitHubConnection` in `internal/api/github_connect.go` rigorously binds `state` to the caller's tenant, workspace, and project, but checks only that the installation ID is positive before persisting it as the caller's connection. `ListInstallationRepositories` in `internal/connectors/github/repositories.go` invokes token creation through `internal/connectors/github/app.go` and `POST /app/installations/{installationId}/access_tokens`, using the application's JWT. An authenticated tenant who starts a legitimate connection can supply another customer's non-secret installation ID to read the victim organization's private repository inventory, content, and metadata or drive posture scans, provided identrail's GitHub App is installed there. The default-off V2 `CompleteGitHubConnector` path shares the installation-ownership gap and additionally matches pending `state` without rechecking caller scope. This issue is fixed in version 1.0.2.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS