{"id":"CVE-2026-64652","kind":"vulnerability","aliases":["CVE-2026-64652","GHSA-cg6r-mpgc-h9mm","GO-2026-6766"],"related":[],"title":"GitHub CLI partially discloses authentication tokens in `gh auth status` output in github.com/cli/cli","description":"GitHub CLI (gh) is GitHub's official command line tool. Prior to version 2.97.0, gh auth status masked only the characters after the last underscore in certain fine-grained personal access tokens and GitHub App tokens. As a result, part of an affected token could appear in terminal or CI output that is captured or shared. Authenticated users are affected if they ran gh auth status (without the --show-token flag) with a token type whose format contains an underscore after the prefix. This includes fine-grained personal access tokens (github_pat_*) and GitHub App installation and user access tokens (ghs_*, ghu_*; for example, ghs_<APPID>_<JWT>), as well as the Actions GITHUB_TOKEN. Classic tokens such as gho_* and ghp_* have an underscore-free body and are not affected. This issue is fixed in version 2.97.0.","summary":"GitHub CLI's `gh auth status` masked only the part of certain tokens after the last underscore, so the start of a fine-grained PAT, GitHub App token, or Actions GITHUB_TOKEN could be printed. An attacker who can read that terminal output, CI log, or shared transcript gets part of a live token.","severity":"low","cvss":3.3,"epss":0.00155,"exploited":false,"exploited_at":null,"products":[{"name":"github.com/cli/cli","fixed":[],"affected":"all versions","ecosystem":"go"},{"name":"github.com/cli/cli/v2","fixed":["2.97.0"],"affected":"< 2.97.0","ecosystem":"go"}],"ecosystems":["go"],"tags":["ci","github-actions","github-cli","go","package"],"not_affected_if":["classic-tokens-only","gh-2.97.0-or-later","gh-auth-status-not-run"],"how_to_check":"Run `gh --version` and check whether it is below 2.97.0.\nFind CI jobs or scripts that run `gh auth status` without --show-token and check whether their logs are visible to others.","fix":"Upgrade gh to 2.97.0 or later.\nIf output containing a github_pat_, ghs_, or ghu_ token was captured or shared, rotate that token.","status":"open","published_at":"2026-08-06T22:18:13+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","triaged_at":"2026-10-23T21:49:22+00:00","updated_at":"2026-10-23T21:49:22+00:00","category":"package","confidence":0.9,"triage":{"at":"2026-10-23T21:49:22Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade gh to 2.97.0 or later.\nIf output containing a github_pat_, ghs_, or ghu_ token was captured or shared, rotate that token.","reach":"local","impact":"low","summary":"GitHub CLI's `gh auth status` masked only the part of certain tokens after the last underscore, so the start of a fine-grained PAT, GitHub App token, or Actions GITHUB_TOKEN could be printed. An attacker who can read that terminal output, CI log, or shared transcript gets part of a live token.","category":"package","who_cares":["github-cli","ci","github-actions","go"],"confidence":0.9,"needs_auth":"yes","worst_case":"Part of a live GitHub token leaks into captured terminal or CI output.","analyst_note":"","how_to_check":"Run `gh --version` and check whether it is below 2.97.0.\nFind CI jobs or scripts that run `gh auth status` without --show-token and check whether their logs are visible to others.","needs_analyst":false,"not_affected_if":["gh-2.97.0-or-later","classic-tokens-only","gh-auth-status-not-run"],"user_interaction":"yes","needs_special_setup":"no","severity_if_unknown":"low"},"cost_usd":0.000864,"input_tokens":3129,"output_tokens":1103,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-2026':17A,25A,28A '-64652':18A,29A '-6766':26A '/cli/cli':15A,32A '/cli/cli/v2':35A '2.97.0':113C,238C 'access':131C,191C,201C 'action':39B,75B,212C 'affect':143C,160C,231C 'app':72B,135C,197C 'appear':146C 'attack':82B 'auth':9A,49B,115C,165C 'authent':5A,157C 'bodi':227C 'captur':154C 'certain':56B,126C 'cg6r':21A 'charact':120C 'ci':36B,89B,150C 'classic':215C 'cli':2A,42B,46B,101C 'command':107C 'contain':179C 'could':78B,145C 'cve':16A,27A 'disclos':4A 'exampl':206C 'fine':68B,128C,188C 'fine-grain':67B,127C,187C 'fix':235C 'flag':172C 'format':178C 'free':226C 'get':94B 'gh':8A,48B,102C,114C,164C 'gho':219C 'ghp':221C 'ghs':203C,207C 'ghsa':20A 'ghsa-cg6r-mpgc-h9mm':19A 'ghu':204C 'github':1A,38B,41B,45B,71B,76B,100C,104C,134C,193C,196C,213C 'github-act':37B 'github-c':40B 'github.com':14A,31A,34A 'github.com/cli/cli':13A,30A 'github.com/cli/cli/v2':33A 'go':24A,43B 'grain':69B,129C,189C 'h9mm':23A 'includ':186C 'instal':198C 'issu':233C 'last':60B,123C 'line':108C 'live':98B 'log':90B 'mask':51B,117C 'mpgc':22A 'offici':106C 'output':11A,88B,151C 'packag':44B 'part':54B,95B,140C 'partial':3A 'pat':70B,194C 'person':130C,190C 'prefix':184C 'print':80B 'prior':110C 'ran':163C 'read':85B 'result':139C 'share':92B,156C 'show':170C 'show-token':169C 'start':64B 'status':10A,50B,116C,166C 'termin':87B,148C 'token':6A,57B,73B,77B,99B,132C,136C,144C,171C,175C,192C,202C,214C,216C 'tool':109C 'transcript':93B 'type':176C 'underscor':61B,124C,181C,225C 'underscore-fre':224C 'user':158C,200C 'version':112C,237C 'well':209C 'whose':177C 'without':167C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-08-06T22:18:13+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"govuln","external_id":"GO-2026-6766","url":"https://pkg.go.dev/vuln/GO-2026-6766","severity":null,"published_at":"2026-10-19T21:08:35+00:00","modified_at":"2026-10-19T21:08:35+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","fetched_at":"2026-10-23T19:13:08+00:00","note":null},{"source":"epss","external_id":"CVE-2026-64652","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-64652","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-23T19:13:43+00:00","fetched_at":"2026-10-23T19:13:43+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-64652","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64652","severity":null,"published_at":"2026-08-06T22:18:13+00:00","modified_at":"2026-09-10T20:36:14+00:00","first_seen_at":"2026-10-23T19:35:23+00:00","fetched_at":"2026-10-23T19:35:23+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}