{"schema":"threatline.record/2","record":{"id":"CVE-2026-59185","aliases":["GHSA-cp3j-m783-3ph5","GO-2026-6448"],"summary":"identrail: Cross-tenant GitHub installation binding without ownership verification","details":"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.","categories":["Libraries & packages"],"product":"identrail","vendor":"identrail","ecosystem":"Go","affected_ranges":[{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-59185","source_modified_at":"2026-10-28T13:15:53.456Z","fetched_at":"2026-10-28T15:55:58.673066Z","product":"identrail","vendor":"identrail","versions":[{"version":"< 1.0.2","status":"affected"}],"defaultStatus":null},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-cp3j-m783-3ph5","source_modified_at":"2026-09-17T17:40:57.250745573Z","fetched_at":"2026-10-28T15:55:58.673066Z","package":{"name":"github.com/identrail/identrail","ecosystem":"Go","purl":"pkg:golang/github.com/identrail/identrail"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.0.2"}]}],"versions":[]}],"fixed_versions":[{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-cp3j-m783-3ph5","source_modified_at":"2026-09-17T17:40:57.250745573Z","fetched_at":"2026-10-28T15:55:58.673066Z","package":{"name":"github.com/identrail/identrail","ecosystem":"Go","purl":"pkg:golang/github.com/identrail/identrail"},"version":"1.0.2"}],"cvss":8.5,"severity":"High","kev":{"listed":false},"epss":{"probability":null,"percentile":null,"score_date":null},"published_at":"2026-10-28T13:15:53.456Z","modified_at":"2026-10-28T13:15:53.456Z","provenance":[{"source":"CVE List","url":"https://www.cve.org/CVERecord?id=CVE-2026-59185","fetched_at":"2026-10-28T15:55:58.673066Z","source_modified_at":"2026-10-28T13:15:53.456Z"},{"source":"OSV","url":"https://osv.dev/vulnerability/GHSA-cp3j-m783-3ph5","fetched_at":"2026-10-28T15:55:58.673066Z","source_modified_at":"2026-09-17T17:40:57.250745573Z"}],"sources":["CVE List","OSV"],"references":[{"source":"CVE List","url":"https://github.com/identrail/identrail/security/advisories/GHSA-cp3j-m783-3ph5","tags":["x_refsource_CONFIRM"]},{"source":"CVE List","url":"https://github.com/identrail/identrail/commit/835e40517509d6ef5405c27fbf14f579bedff0e7","tags":["x_refsource_MISC"]},{"source":"CVE List","url":"https://github.com/identrail/identrail/releases/tag/v1.0.2","tags":["x_refsource_MISC"]}],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"cve_state":"PUBLISHED","cvss_source":"CVE List","classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":"ecosystem","confidence":"heuristic","reviewed":false},"change_timestamp":"2026-10-28T13:15:53.456Z","content_hash":"ade0a45d1416d1b99073162b3cf1bafc1b3198133e8682b57bc23df9a0b55cd4"}}
