{"id":"CVE-2026-102339","kind":"vulnerability","aliases":["CVE-2026-102339"],"related":[],"title":"Telepresence: attacker can hijack another user's cluster tunnel session","description":"Telepresence enables local development against a remote Kubernetes or OpenShift cluster. Prior to 2.31.0, the Traffic Manager Tunnel gRPC streaming endpoint parses a session ID from the first bytes of a caller-controlled message in pkg/tunnel/message.go and passes it to state.Tunnel without verifying that the caller owns the active session. An attacker who obtains a valid active session ID through log leakage, cluster-internal channels, or the unauthenticated ArriveAsClient endpoint can attach a routed tunnel to that session and gain its network routing capabilities. UUID4 session IDs make cold brute force impractical. This vulnerability is fixed in 2.31.0.","summary":"Telepresence, a tool for running local development against a remote Kubernetes or OpenShift cluster, fails to check that a caller owns a tunnel session before attaching to it. An attacker who obtains a valid active session ID can attach a routed tunnel and use that session's network routing into the cluster.","severity":"high","cvss":8.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["infrastructure","kubernetes","openshift","telepresence","traffic-manager"],"not_affected_if":["telepresence-not-used","version-2.31.0-or-later"],"how_to_check":"- Check the installed Telepresence version with `telepresence version` and compare it against the fixed release.\n- Look for the Traffic Manager deployed in the cluster and check its image version.\n- Review whether the `ArriveAsClient` endpoint is reachable from outside the cluster network.","fix":"- Telepresence: move to `2.31.0` or later.","status":"open","published_at":"2026-11-04T21:17:40+00:00","first_seen_at":"2026-11-04T21:49:16+00:00","triaged_at":"2026-11-04T21:50:45+00:00","updated_at":"2026-11-04T21:50:45+00:00","category":"infrastructure","confidence":0.6,"triage":{"at":"2026-11-04T21:50:45Z","model":"claude-haiku-5-5","output":{"fix":"- Telepresence: move to `2.31.0` or later.","reach":"network","title":"Telepresence: attacker can hijack another user's cluster tunnel session","impact":"high","summary":"Telepresence, a tool for running local development against a remote Kubernetes or OpenShift cluster, fails to check that a caller owns a tunnel session before attaching to it. An attacker who obtains a valid active session ID can attach a routed tunnel and use that session's network routing into the cluster.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["kubernetes","openshift","telepresence","traffic-manager"],"confidence":0.6,"fix_status":"available","needs_auth":"unknown","worst_case":"attacker attaches to sessions and reaches cluster networks","analyst_note":"","how_to_check":"- Check the installed Telepresence version with `telepresence version` and compare it against the fixed release.\n- Look for the Traffic Manager deployed in the cluster and check its image version.\n- Review whether the `ArriveAsClient` endpoint is reachable from outside the cluster network.","plain_action":"","needs_analyst":false,"not_affected_if":["telepresence-not-used","version-2.31.0-or-later"],"who_is_affected":"Teams that run Telepresence against a Kubernetes or OpenShift cluster before version 2.31.0 are exposed, especially if the Traffic Manager's gRPC tunnel endpoint is reachable by others. Session IDs can leak through logs or cluster-internal channels, and the unauthenticated ArriveAsClient endpoint makes it easier to obtain or use one. Teams that do not use Telepresence, or run it only on fully isolated clusters, can skip it.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000749,"input_tokens":4306,"output_tokens":636,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-102339':13A,16A '-2026':12A,15A '2.31.0':89C,175C 'activ':58B,125C,133C 'anoth':5A 'arriveascli':146C 'attach':49B,62B,149C 'attack':2A,53B,128C 'brute':167C 'byte':104C 'caller':43B,108C,122C 'caller-control':107C 'capabl':161C 'channel':142C 'check':40B 'cluster':8A,37B,75B,86C,140C 'cluster-intern':139C 'cold':166C 'control':109C 'cve':11A,14A 'develop':30B,79C 'enabl':77C 'endpoint':96C,147C 'fail':38B 'first':103C 'fix':173C 'forc':168C 'gain':157C 'grpc':94C 'hijack':4A 'id':60B,100C,135C,164C 'impract':169C 'infrastructur':17B 'intern':141C 'kubernet':18B,34B,83C 'leakag':138C 'local':29B,78C 'log':137C 'make':165C 'manag':23B,92C 'messag':110C 'network':71B,159C 'obtain':55B,130C 'openshift':19B,36B,85C 'own':44B,123C 'pars':97C 'pass':114C 'pkg/tunnel/message.go':112C 'prior':87C 'remot':33B,82C 'rout':64B,72B,151C,160C 'run':28B 'session':10A,47B,59B,69B,99C,126C,134C,155C,163C 'state.tunnel':117C 'stream':95C 'telepres':1A,20B,24B,76C 'tool':26B 'traffic':22B,91C 'traffic-manag':21B 'tunnel':9A,46B,65B,93C,152C 'unauthent':145C 'use':67B 'user':6A 'uuid4':162C 'valid':57B,132C 'verifi':119C 'vulner':171C 'without':118C","nicknames":[],"mitigations":[],"who_affected":"Teams that run Telepresence against a Kubernetes or OpenShift cluster before version 2.31.0 are exposed, especially if the Traffic Manager's gRPC tunnel endpoint is reachable by others. Session IDs can leak through logs or cluster-internal channels, and the unauthenticated ArriveAsClient endpoint makes it easier to obtain or use one. Teams that do not use Telepresence, or run it only on fully isolated clusters, can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["high","infrastructure","kubernetes","openshift","telepresence","trafficmanager"],"campaign_type":null,"first_public_at":"2026-07-22T07:19:42+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-102339","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-102339","severity":null,"published_at":"2026-11-04T21:17:40+00:00","modified_at":"2026-11-04T21:17:40+00:00","first_seen_at":"2026-11-04T21:49:16+00:00","fetched_at":"2026-11-04T21:49:16+00:00","note":null}],"documents":[{"id":70607,"url":"https://github.com/telepresenceio/telepresence/commit/1312482488b771742dbedd3015f9a81a27532de6","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":70608,"url":"https://github.com/telepresenceio/telepresence/commit/36458b65a010d2b316af48cd90e193ba190785d9","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":70609,"url":"https://github.com/telepresenceio/telepresence/releases/tag/v2.31.0","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":70610,"url":"https://github.com/telepresenceio/telepresence/security/advisories/GHSA-6j3h-rp73-6rvf","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-07-22T07:19:42+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"exploit_sources":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}