High · published October 7, 2026
When a push was authenticated with a deploy key, Gitea recorded the repository owner as the pusher, so permission checks in the push hook pipeline evaluated the owner instead of the deploy key. A holder of a writable deploy key could create protected tags without being on the tag allow list and change repository visibility through push options, for example making a private repository public. Pull requests created through the AGit flow with a deploy key were also attributed to the owner.
| Product | Versions | Fixed in |
|---|---|---|
| gitea/gitea | < 28.0.0 | 28.0.0 |