{"id":"CVE-2026-97859","kind":"vulnerability","aliases":["CVE-2026-97859"],"related":[],"title":"Gitea: API routes expose limited-visibility users' follows, stars and keys","description":"Seven Gitea API routes under `/api/v1/users/{username}` (followers, following, following/{target}, starred, subscriptions, keys and gpg_keys) were registered without the `individualPermsChecker` middleware that enforces the visibility of the target user. An authenticated user could therefore read the followers, following list, starred and watched repositories and public SSH and GPG keys of a user with limited or private visibility, whom they could not otherwise see. The issue was fixed in 1.27.3 and 28.0.0 and disclosed with 28.2.0.","summary":"Seven Gitea API routes under /api/v1/users/{username} skipped the middleware that checks whether the target user is visible to the caller. An authenticated user can read the followers, following list, starred and watched repositories, and public SSH and GPG keys of users they should not be able to see.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["gitea","runtime","self-hosted"],"not_affected_if":["public-visibility-only","unknown"],"how_to_check":"- Run `gitea --version` on the server and compare against the fixed versions below.\n- unknown","fix":"- Upgrade Gitea to `1.27.3` or `28.0.0` or later, matching your release line; the fix shipped in both.\n- unknown","status":"open","published_at":"2026-10-18T19:16:33+00:00","first_seen_at":"2026-10-23T21:57:17+00:00","triaged_at":"2026-10-25T03:57:28+00:00","updated_at":"2026-10-25T03:57:28+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-10-25T03:57:28Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Gitea to `1.27.3` or `28.0.0` or later, matching your release line; the fix shipped in both.\n- unknown","reach":"internet","title":"Gitea: API routes expose limited-visibility users' follows, stars and keys","impact":"low","summary":"Seven Gitea API routes under /api/v1/users/{username} skipped the middleware that checks whether the target user is visible to the caller. An authenticated user can read the followers, following list, starred and watched repositories, and public SSH and GPG keys of users they should not be able to see.","category":"runtime","nicknames":[],"who_cares":["gitea","self-hosted"],"confidence":0.7,"needs_auth":"yes","worst_case":"Authenticated users read private users' social graph and public keys","analyst_note":"","how_to_check":"- Run `gitea --version` on the server and compare against the fixed versions below.\n- unknown","needs_analyst":false,"not_affected_if":["public-visibility-only","unknown"],"who_is_affected":"Any Gitea instance where users have limited or private visibility and accounts can log in. Instances where every user is publicly visible have little to expose. The sources do not list specific deployment setups beyond the affected routes.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000571,"input_tokens":3402,"output_tokens":462,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-97859':15A,18A '/api/v1/users':29B,78C '1.27.3':143C '28.0.0':145C '28.2.0':149C 'abl':70B 'api':2A,26B,75C 'authent':46B,105C 'caller':44B 'check':35B 'could':107C,134C 'cve':13A,16A 'disclos':147C 'enforc':97C 'expos':4A 'fix':141C 'follow':9A,51B,52B,80C,81C,82C,111C,112C 'gitea':1A,19B,25B,74C 'gpg':62B,88C,122C 'host':23B 'individualpermscheck':94C 'issu':139C 'key':12A,63B,86C,89C,123C 'limit':6A,128C 'limited-vis':5A 'list':53B,113C 'middlewar':33B,95C 'otherwis':136C 'privat':130C 'public':59B,119C 'read':49B,109C 'regist':91C 'repositori':57B,117C 'rout':3A,27B,76C 'runtim':20B 'see':72B,137C 'self':22B 'self-host':21B 'seven':24B,73C 'skip':31B 'ssh':60B,120C 'star':10A,54B,84C,114C 'subscript':85C 'target':38B,83C,102C 'therefor':108C 'user':8A,39B,47B,65B,103C,106C,126C 'usernam':30B,79C 'visibl':7A,41B,99C,131C 'watch':56B,116C 'whether':36B 'without':92C","nicknames":[],"mitigations":[],"who_affected":"Any Gitea instance where users have limited or private visibility and accounts can log in. Instances where every user is publicly visible have little to expose. The sources do not list specific deployment setups beyond the affected routes.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T19:16:33+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","cvss_by":"134c704f-9b21-4f2e-91b3-4a467353bcc0","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-97859","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-97859","severity":null,"published_at":"2026-10-18T19:16:33+00:00","modified_at":"2026-10-19T20:52:16+00:00","first_seen_at":"2026-10-23T21:57:17+00:00","fetched_at":"2026-10-23T22:28:56+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"}