{"id":"CVE-2026-89182","aliases":["BIT-gitea-2026-89182","EUVD-2026-94065","GHSA-fx95-gwfc-grgc"],"status":"published","title":"Gitea push-to-create bypass of FORCE_PRIVATE policy","description":"With `[repository] FORCE_PRIVATE = true`, Gitea creates new repositories as private, but the post-receive hook still applied the `repo.private=false` push option to an empty repository created by push. Any user who can create repositories could make their new repository public in violation of the instance policy. The default configuration is not affected.","severity":{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-09","score":0.00196,"percentile":0.09375,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-863"],"published":"2026-10-06T21:36:01Z","modified":"2026-10-28T02:30:45Z","fixes":[{"ecosystem":"Bitnami","package":"gitea","fixed_in":["28.1.0"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Bitnami","package":"gitea","ranges":[{"type":"SEMVER","events":[{"introduced":"1.27.0"},{"fixed":"28.1.0"}]}]}],"products":[{"vendor":"gitea","product":"gitea"}],"references":[{"url":"https://github.com/go-gitea/gitea/security/advisories/GHSA-fx95-gwfc-grgc","tags":["vendor-advisory","exploit","Mitigation","Vendor Advisory","advisory"]},{"url":"https://github.com/go-gitea/gitea/pull/39501","tags":["patch","Patch","Issue Tracking","fix"]},{"url":"https://github.com/go-gitea/gitea/pull/39507","tags":["patch","Patch","Issue Tracking","fix"]},{"url":"https://blog.gitea.com/release-of-28.1.0/","tags":["release-notes","Release Notes","article","advisory"]},{"url":"https://github.com/go-gitea/gitea/releases/tag/v28.1.0","tags":["release-notes","Release Notes","article","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89182","tags":["web","advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89182.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-89182","title":"Gitea push-to-create bypass of FORCE_PRIVATE policy","description":"With `[repository] FORCE_PRIVATE = true`, Gitea creates new repositories as private, but the post-receive hook still applied the `repo.private=false` push option to an empty repository created by push. Any user who can create repositories could make their new repository public in violation of the instance policy. The default configuration is not affected.","status":"published","published":"2026-10-06T21:36:01.187Z","modified":"2026-10-07T11:34:42.708Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"adp"}],"cwes":["CWE-863"],"updated_at":"2026-11-02T14:19:55.176387Z"}],"euvd":[{"id":"EUVD-2026-94065","description":"With `[repository] FORCE_PRIVATE = true`, Gitea creates new repositories as private, but the post-receive hook still applied the `repo.private=false` push option to an empty repository created by push. Any user who can create repositories could make their new repository public in violation of the instance policy. The default configuration is not affected.","status":"published","published":"2026-10-06T21:36:01Z","modified":"2026-10-07T11:34:42Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T17:27:35.509652Z"}],"nvd":[{"id":"CVE-2026-89182","description":"With `[repository] FORCE_PRIVATE = true`, Gitea creates new repositories as private, but the post-receive hook still applied the `repo.private=false` push option to an empty repository created by push. Any user who can create repositories could make their new repository public in violation of the instance policy. The default configuration is not affected.","status":"published","published":"2026-10-06T22:17:07.69Z","modified":"2026-10-13T18:03:37.053Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-863"],"updated_at":"2026-11-02T14:12:54.809359Z"}],"osv":[{"id":"CVE-2026-89182","title":"Gitea push-to-create bypass of FORCE_PRIVATE policy","description":"With `[repository] FORCE_PRIVATE = true`, Gitea creates new repositories as private, but the post-receive hook still applied the `repo.private=false` push option to an empty repository created by push. Any user who can create repositories could make their new repository public in violation of the instance policy. The default configuration is not affected.","status":"published","published":"2026-10-06T21:36:01.187Z","modified":"2026-10-28T02:30:45.991476734Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-863"],"updated_at":"2026-11-02T15:45:19.210277Z"},{"id":"BIT-gitea-2026-89182","title":"Gitea push-to-create bypass of FORCE_PRIVATE policy","description":"With `[repository] FORCE_PRIVATE = true`, Gitea creates new repositories as private, but the post-receive hook still applied the `repo.private=false` push option to an empty repository created by push. Any user who can create repositories could make their new repository public in violation of the instance policy. The default configuration is not affected.","status":"published","published":"2026-10-14T08:43:04.863Z","modified":"2026-10-14T11:10:41.748407751Z","updated_at":"2026-11-02T15:28:29.999658Z"}]}}
