{"id":"EUVD-2026-112081","revision":"f3e09f60d4d34f138e511f01ea7cbd92","records":[{"revision":"f3e09f60d4d34f138e511f01ea7cbd92","observedAt":"2026-10-30T10:50:57.621+00:00","statement":{"source":"euvd","id":"EUVD-2026-112081","aliases":["CVE-2026-59185","GHSA-cp3j-m783-3ph5"],"title":"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` acc…","description":"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.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N","score":8.5,"severity":null}],"references":["https://github.com/identrail/identrail/security/advisories/GHSA-cp3j-m783-3ph5","https://github.com/identrail/identrail/commit/835e40517509d6ef5405c27fbf14f579bedff0e7","https://github.com/identrail/identrail/releases/tag/v1.0.2"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-112081","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Oct 28, 2026, 1:15:53 PM","dateUpdated":"Oct 28, 2026, 4:07:10 PM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-112081","identifiers":["EUVD-2026-112081","CVE-2026-59185","GHSA-cp3j-m783-3ph5"]},"retained":false,"historicalAffected":[]}],"coverage":[]}