{"id":"CVE-2026-118504","kind":"vulnerability","aliases":["CVE-2026-118504"],"related":[],"title":"Gitea: REST API lets users change issues in archived repositories","description":"The web interface blocks issue and pull request changes on archived repositories, but several issue routes of the REST API did not check whether the repository is archived. A user allowed to change issues of an archived repository could use the API to edit, close or delete issues, change labels and deadlines, add or delete tracked time and stopwatches, add reactions, change issue blocks, and pin issues, altering data that archiving is meant to freeze. Gitea 28.2.0 added the check to the issue edit, delete and label routes; Gitea 28.3.0 applies it to all modifying repository API requests.","summary":"Several Gitea REST API issue routes skip the archived-repository check that the web interface applies. A user with rights to an archived repository can edit, close or delete issues, change labels, time tracking and pins there, altering data archiving should freeze.","severity":"medium","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["git-hosting","gitea","package","self-hosted"],"not_affected_if":["managed-hosting","no-archived-repos","read-only-users"],"how_to_check":"- Run `gitea --version` or check the version shown in the admin dashboard; versions below `28.3.0` are in scope\n- Look for archived repositories that accept API writes to issues, labels or time tracking","fix":"- Gitea: move to `28.3.0` or later (the sources say 28.2.0 fixed only some routes)","status":"open","published_at":"2026-11-01T10:18:36+00:00","first_seen_at":"2026-11-01T10:49:33+00:00","triaged_at":"2026-11-01T10:51:23+00:00","updated_at":"2026-11-01T10:51:23+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-01T10:51:23Z","model":"claude-haiku-5-5","output":{"fix":"- Gitea: move to `28.3.0` or later (the sources say 28.2.0 fixed only some routes)","reach":"network","title":"Gitea: REST API lets users change issues in archived repositories","impact":"low","summary":"Several Gitea REST API issue routes skip the archived-repository check that the web interface applies. A user with rights to an archived repository can edit, close or delete issues, change labels, time tracking and pins there, altering data archiving should freeze.","audience":"businesses","category":"package","nicknames":[],"who_cares":["gitea","self-hosted","git-hosting"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"authenticated users alter frozen issue data in archived repositories","analyst_note":"","how_to_check":"- Run `gitea --version` or check the version shown in the admin dashboard; versions below `28.3.0` are in scope\n- Look for archived repositories that accept API writes to issues, labels or time tracking","plain_action":"","needs_analyst":false,"not_affected_if":["no-archived-repos","read-only-users","managed-hosting"],"who_is_affected":"Only Gitea instances that host archived repositories and have users with write access to them. The web interface already blocks these changes, so the exposure is through the REST API. Instances without archived repositories, or where only trusted users can write, are less exposed.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000674,"input_tokens":4196,"output_tokens":508,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-118504':13A,16A '-2026':12A,15A '28.2.0':144C '28.3.0':157C 'add':120C,127C,145C 'allow':98C 'alter':63B,135C 'api':3A,28B,87C,109C,164C 'appli':41B,158C 'archiv':9A,34B,48B,65B,78C,95C,104C,138C 'archived-repositori':33B 'block':71C,131C 'chang':6A,56B,76C,100C,116C,129C 'check':36B,90C,147C 'close':52B,112C 'could':106C 'cve':11A,14A 'data':64B,136C 'deadlin':119C 'delet':54B,114C,122C,152C 'edit':51B,111C,151C 'freez':67B,142C 'git':18B 'git-host':17B 'gitea':1A,20B,26B,143C,156C 'host':19B,24B 'interfac':40B,70C 'issu':7A,29B,55B,72C,82C,101C,115C,130C,134C,150C 'label':57B,117C,154C 'let':4A 'meant':140C 'modifi':162C 'packag':21B 'pin':61B,133C 'pull':74C 'reaction':128C 'repositori':10A,35B,49B,79C,93C,105C,163C 'request':75C,165C 'rest':2A,27B,86C 'right':45B 'rout':30B,83C,155C 'self':23B 'self-host':22B 'sever':25B,81C 'skip':31B 'stopwatch':126C 'time':58B,124C 'track':59B,123C 'use':107C 'user':5A,43B,97C 'web':39B,69C 'whether':91C","nicknames":[],"mitigations":[],"who_affected":"Only Gitea instances that host archived repositories and have users with write access to them. The web interface already blocks these changes, so the exposure is through the REST API. Instances without archived repositories, or where only trusted users can write, are less exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"first_public_at":"2026-11-01T10:18:36+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-118504","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118504","severity":null,"published_at":"2026-11-01T10:18:36+00:00","modified_at":"2026-11-01T10:18:36+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"}