CVE-2026-103059: Gitea built-in SSH server authentication bypass through key case folding
When Gitea's built-in SSH server is enabled (STARTSSHSERVER = true), the presented public key was looked up with an SQL LIKE comparison of its encoded content, which is case-insensitive on some databases, including the default SQLite. An attacker who can construct a case variant of another user's registered RSA public key for which they can derive the private key could have that key matched to the victim's account and authenticate over SSH as that user. Keys are now looked up by fingerprint.
Affected Software
Event History
Frequently Asked Questions
Which deployments are exposed?
Deployments using Gitea's built-in SSH server with START_SSH_SERVER set to true are affected. The issue is particularly relevant on databases whose SQL LIKE comparison is case-insensitive, including the default SQLite.
What must an attacker be able to do to authenticate as another user?
The attacker must construct a case variant of a victim's registered RSA public key and be able to derive the corresponding private key. If the case-insensitive lookup matches that variant, SSH authentication can be performed as the victim account.
How was the issue addressed?
Public keys are now looked up by fingerprint rather than using an SQL LIKE comparison of encoded key content.