{"id":"CVE-2026-117635","kind":"vulnerability","aliases":["CVE-2026-117635"],"related":[],"title":"Admin API let public-only access tokens create site administrator accounts","description":"The `/api/v1/admin` route group did not enforce the `public-only` restriction of personal access tokens. A public-only token with admin scope issued by a site administrator could therefore list private organizations and the email addresses of all users, create organizations, obtain runner registration tokens and create new site administrator accounts, the last of which persists after the token is revoked. Tokens of users who are not site administrators cannot reach these routes; public-only tokens are now rejected on the admin API.","summary":"The `/api/v1/admin` routes did not enforce the public-only restriction on personal access tokens. A public-only token with admin scope could list private organizations and user email addresses, create organizations, obtain runner registration tokens, and create site administrator accounts that remain after the token is revoked.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["admin-api","git-hosting","runtime","self-hosted"],"not_affected_if":["no-admin-scoped-public-only-tokens","non-admin-tokens-only"],"how_to_check":"- Review personal access tokens issued by site administrators for admin scope with the public-only restriction.\n- Review site administrator accounts for any created recently that you did not expect.\n- Confirm the product name and version from your deployment; the sources do not name the product or a fixed version.","fix":"- Sources state that public-only tokens are now rejected on the admin API. The fixed version is unknown.","status":"open","published_at":"2026-11-01T10:18:35+00:00","first_seen_at":"2026-11-01T10:49:33+00:00","triaged_at":"2026-11-01T10:51:39+00:00","updated_at":"2026-11-01T10:51:39+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-11-01T10:51:39Z","model":"claude-haiku-5-5","output":{"fix":"- Sources state that public-only tokens are now rejected on the admin API. The fixed version is unknown.","reach":"unknown","title":"Admin API let public-only access tokens create site administrator accounts","impact":"high","summary":"The `/api/v1/admin` routes did not enforce the public-only restriction on personal access tokens. A public-only token with admin scope could list private organizations and user email addresses, create organizations, obtain runner registration tokens, and create site administrator accounts that remain after the token is revoked.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["self-hosted","git-hosting","admin-api"],"confidence":0.6,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker creates persistent site administrator accounts and reads private data","analyst_note":"","how_to_check":"- Review personal access tokens issued by site administrators for admin scope with the public-only restriction.\n- Review site administrator accounts for any created recently that you did not expect.\n- Confirm the product name and version from your deployment; the sources do not name the product or a fixed version.","plain_action":"","needs_analyst":false,"not_affected_if":["no-admin-scoped-public-only-tokens","non-admin-tokens-only"],"who_is_affected":"Teams running a self-hosted code hosting server with personal access tokens and an admin API are exposed when a site administrator has issued a public-only token with admin scope. Tokens of users who are not site administrators cannot reach these routes, so those deployments are not affected by this path. The sources do not name the product or the affected version range.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.00108,"input_tokens":4165,"output_tokens":1327,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-117635':15A,18A '-2026':14A,17A '/api/v1/admin':30B,79C 'access':7A,42B,92C 'account':12A,70B,130C 'address':59B,115C 'admin':1A,20B,50B,100C,162C 'admin-api':19B 'administr':11A,69B,106C,129C,148C 'api':2A,21B,163C 'cannot':149C 'could':52B,107C 'creat':9A,60B,67B,119C,126C 'cve':13A,16A 'email':58B,114C 'enforc':34B,84C 'git':23B 'git-host':22B 'group':81C 'host':24B,28B 'issu':102C 'last':132C 'let':3A 'list':53B,109C 'new':127C 'obtain':62B,121C 'organ':55B,61B,111C,120C 'persist':135C 'person':41B,91C 'privat':54B,110C 'public':5A,37B,46B,87C,96C,154C 'public-on':4A,36B,45B,86C,95C,153C 'reach':150C 'registr':64B,123C 'reject':159C 'remain':72B 'restrict':39B,89C 'revok':77B,140C 'rout':31B,80C,152C 'runner':63B,122C 'runtim':25B 'scope':51B,101C 'self':27B 'self-host':26B 'site':10A,68B,105C,128C,147C 'therefor':108C 'token':8A,43B,48B,65B,75B,93C,98C,124C,138C,141C,156C 'user':57B,118C,143C","nicknames":[],"mitigations":[],"who_affected":"Teams running a self-hosted code hosting server with personal access tokens and an admin API are exposed when a site administrator has issued a public-only token with admin scope. Tokens of users who are not site administrators cannot reach these routes, so those deployments are not affected by this path. The sources do not name the product or the affected version range.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"first_public_at":"2026-11-01T10:18:35+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-117635","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-117635","severity":null,"published_at":"2026-11-01T10:18:35+00:00","modified_at":"2026-11-01T10:18:35+00:00","first_seen_at":"2026-11-01T10:49:33+00:00","fetched_at":"2026-11-01T10:49:33+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"}