Gitea 28.2 Fixes Nine Security Vulnerabilities, Including SSH Certificate and OpenID Account Takeovers
Gitea released version 28.2 on October 18, the second maintenance update since Gitea 28.0 dropped the 1.x numbering. It fixes nine security vulnerabilities, and the project strongly recommends upgrading as soon as possible.
The serious ones
- CVE-2026-109553, SSH authentication: certificate principals were not validated properly, so under certain configurations an attacker could authenticate as another user. This matters if you use SSH certificates with Gitea
- CVE-2026-104627, OpenID: an attacker could link their own OpenID identity to someone else’s account and sign in as them. Linking now requires a short-lived state value tied to the logged-in user
- CVE-2026-110311: attachments from private repositories could be exposed through draft releases
- CVE-2026-105964: the Actions artifact v4 API accepted unlimited request sizes, so a request could exhaust server memory. Bodies are now capped at 1MiB
Other fixes cover unauthorised interaction with locked issues, attachment permissions, and cross-site request forgery on repository topics. Gitea also disclosed three issues fixed in earlier releases.
Other fixes
Cancelled reusable workflows no longer get stuck, scheduled workflows follow default branch changes, empty pull requests are no longer marked as merged, and WebAuthn works better with WebKit browsers.
Upgrade
Gitea is a single binary, so upgrading means replacing it and restarting the service after a backup. Binaries are on our Gitea 28.2 download page; for containers, pull gitea/gitea:28.2. If your instance is exposed to the internet and uses SSH certificates or OpenID sign-in, treat this as urgent.