{"metadata": {"vulnerability": "CVE-2026-59185", "count": 14, "kinds": {"milestone": 4, "sighting": 3, "kev": 0, "other": 7}}, "data": [{"timestamp": "2026-07-02T19:53:48.830Z", "date_only": false, "value": "2026-07-02T19:53:48.830Z", "kind": "milestone", "label": "Reserved", "source": "cvelistv5", "record": "CVE-2026-59185", "field": "cveMetadata.dateReserved"}, {"timestamp": "2026-09-09T23:52:14Z", "date_only": false, "value": "2026-09-09T23:52:14Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-CP3J-M783-3PH5", "record": "GHSA-CP3J-M783-3PH5", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-09-09T23:52:14Z", "date_only": false, "value": "2026-09-09T23:52:14Z", "kind": "other", "label": "Updated", "source": "github \u00b7 GHSA-CP3J-M783-3PH5", "record": "GHSA-CP3J-M783-3PH5", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-28T13:15:53.456Z", "date_only": false, "value": "2026-10-28T13:15:53.456Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-59185", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-10-28T13:15:53.456Z", "date_only": false, "value": "2026-10-28T13:15:53.456Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / GitHub_M", "record": "CVE-2026-59185", "field": "containers.cna.providerMetadata.dateUpdated"}, {"timestamp": "2026-10-28T13:23:45.259Z", "date_only": false, "value": "2026-10-28T13:23:45.259390Z", "kind": "sighting", "label": "Seen", "source": "https://infosec.exchange/users/cve/statuses/117518750503645220", "record": "CVE-2026-59185", "field": "creation_timestamp", "uuid": "a02006ac-fb8d-4ee5-9be0-494bd8469257", "content": "CVE-2026-59185 identrail: Cross-tenant GitHub installation binding without ownership verification 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.\nhttps://www.cve.org/CVERecord?id=CVE-2026-59185https://github.com/identrail/identrail/security/advisories/GHSA-cp3j-m783-3ph5https://github.com/identrail/identrail/commit/835e40517509d6ef5405c27fbf14f579bedff0e7https://github.com/identrail/identrail/releases/tag/v1.0.2#identrail#CVE_2026_59185#bot", "url": "https://infosec.exchange/users/cve/statuses/117518750503645220"}, {"timestamp": "2026-10-28T13:40:34.177Z", "date_only": false, "value": "2026-10-28T13:40:34.177231Z", "kind": "sighting", "label": "Seen", "source": "https://infosec.exchange/users/cve/statuses/117518816619694010", "record": "CVE-2026-59185", "field": "creation_timestamp", "uuid": "95cb6d83-1868-4b24-984f-85a7625252af", "content": "CVE-2026-59185 identrail: Cross-tenant GitHub installation binding without ownership verification 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.\nhttps://www.cve.org/CVERecord?id=CVE-2026-59185https://github.com/identrail/identrail/security/advisories/GHSA-cp3j-m783-3ph5https://github.com/identrail/identrail/commit/835e40517509d6ef5405c27fbf14f579bedff0e7https://github.com/identrail/identrail/releases/tag/v1.0.2#identrail#CVE_2026_59185#bot", "url": "https://infosec.exchange/users/cve/statuses/117518816619694010"}, {"timestamp": "2026-10-28T14:17:05.070Z", "date_only": false, "value": "2026-10-28T14:17:05.070", "kind": "milestone", "label": "Published", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-59185", "record": "FKIE_CVE-2026-59185", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-28T14:37:16.463Z", "date_only": false, "value": "2026-10-28T14:37:16.463171Z", "kind": "other", "label": "Recorded", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-59185", "field": "containers.adp.0.metrics.0.other.content.timestamp"}, {"timestamp": "2026-10-28T14:37:16.463Z", "date_only": false, "value": "2026-10-28T14:37:16.463171Z", "kind": "other", "label": "Recorded", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-59185", "record": "FKIE_CVE-2026-59185", "field": "metrics.ssvcV203.0.ssvcData.timestamp", "linked_record": true}, {"timestamp": "2026-10-28T15:01:47.379Z", "date_only": false, "value": "2026-10-28T15:01:47.379413Z", "kind": "sighting", "label": "Seen", "source": "https://bsky.app/profile/thehackerwire.bsky.social/post/3mywzfrwal72w", "record": "CVE-2026-59185", "field": "creation_timestamp", "uuid": "f459480b-091d-4358-9db8-0b3255fd22c1", "content": "\ud83d\udfe0 CVE-2026-59185 - High (8.5)\n\nidentrail is a machine identity security platform for AWS, GitHub/OIDC, and Kubernetes. Prior to ...\n\nhttps://www.thehackerwire.com/vulnerability/CVE-2026-59185/\n\n#infosec #cybersecurity #CVE #vulnerability #security #patchstack", "url": "https://bsky.app/profile/thehackerwire.bsky.social/post/3mywzfrwal72w"}, {"timestamp": "2026-10-28T16:07:10.634Z", "date_only": false, "value": "2026-10-28T16:07:10.634Z", "kind": "other", "label": "Updated", "source": "cvelistv5", "record": "CVE-2026-59185", "field": "cveMetadata.dateUpdated"}, {"timestamp": "2026-10-28T16:07:10.634Z", "date_only": false, "value": "2026-10-28T16:07:10.634Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-59185", "field": "containers.adp.0.providerMetadata.dateUpdated"}, {"timestamp": "2026-10-28T16:17:08.510Z", "date_only": false, "value": "2026-10-28T16:17:08.510", "kind": "other", "label": "Updated", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-59185", "record": "FKIE_CVE-2026-59185", "field": "lastModified", "linked_record": true}], "metrics": {"as_of": "2026-11-10T01:41:51.846Z", "anchors": {"origin": {"timestamp": "2026-09-09T23:52:14Z", "date_only": false, "value": "2026-09-09T23:52:14Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-CP3J-M783-3PH5", "record": "GHSA-CP3J-M783-3PH5", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, "discovery": null, "report": null, "acknowledgement": null, "disclosure": {"timestamp": "2026-09-09T23:52:14Z", "date_only": false, "value": "2026-09-09T23:52:14Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-CP3J-M783-3PH5", "record": "GHSA-CP3J-M783-3PH5", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, "exploit_publication": null, "exploitation": null, "patch": null}, "vendor_response_time": {"available": false, "missing": ["start", "end"]}, "time_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit_publication": {"available": false, "missing": ["end"]}, "time_to_patch": {"available": false, "missing": ["start", "end"]}, "total_time_to_patch": {"available": false, "missing": ["start", "end"]}, "disclosure_to_patch": {"available": false, "missing": ["end"]}, "time_unpatched": {"available": true, "seconds": 5276977.846975, "hours": 1465.8271797152777, "days": 61.07613248813657, "min_seconds": 5276977.846975, "max_seconds": 5276977.846975, "approximate": false, "ongoing": true, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-09-09T23:52:14Z", "date_only": false, "value": "2026-09-09T23:52:14Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-CP3J-M783-3PH5", "record": "GHSA-CP3J-M783-3PH5", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, "end": {"timestamp": "2026-11-10T01:41:51.846Z", "date_only": false, "label": "As of", "source": "Calculation clock"}}, "exploitation_to_patch": {"available": false, "missing": ["start"]}, "exploit_publication_to_patch": {"available": false, "missing": ["start"]}}}
