Gitea built-in SSH server authentication bypass through key case folding
When Gitea's built-in SSH server is enabled (`START_SSH_SERVER = 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.
- Products
- gitea
- Affected versions
- Not specified
- Fixed versions
- 28.0.0
- CVEs
- CVE-2026-103059
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 30 Oct 2026, 20:02 UTC · Revision 1
Source evidence
Gitea built-in SSH server authentication bypass through key case folding
core-osv · Original sourcePublished 16 Oct 2026, 08:36 UTC
When Gitea's built-in SSH server is enabled (`START_SSH_SERVER = 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.
osv:BIT-gitea-2026-103059
gitea
Fixed versions: 28.0.0
Complete source record
{
"id": "c6f3f4ae864d025ac192f9961f4193655874123ac5de6e39bec55fa719accb5a",
"url": "https://osv.dev/vulnerability/BIT-gitea-2026-103059",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Gitea built-in SSH server authentication bypass through key case folding",
"summary": "When Gitea's built-in SSH server is enabled (`START_SSH_SERVER = 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.",
"evidence": "osv:BIT-gitea-2026-103059",
"products": [
{
"name": {
"value": "gitea",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "28.0.0",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
}
],
"severity": "critical",
"structured": {
"id": "BIT-gitea-2026-103059",
"aliases": [
"BIT-gitea-2026-103059",
"CVE-2026-103059",
"GHSA-8pwg-hcgm-54cp"
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "28.0.0"
}
]
}
],
"package": {
"name": "gitea",
"purl": "pkg:bitnami/gitea",
"ecosystem": "Bitnami"
},
"severity": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
}
],
"database_specific": {
"source": "https://github.com/bitnami/vulndb/tree/main/data/gitea/BIT-gitea-2026-103059.json"
}
}
],
"modified": "2026-10-16T09:55:59.349580805Z",
"provider": "osv",
"references": [
"https://blog.gitea.com/release-of-28.0.0/",
"https://github.com/go-gitea/gitea/pull/39423",
"https://github.com/go-gitea/gitea/releases/tag/v28.0.0",
"https://github.com/go-gitea/gitea/security/advisories/GHSA-8pwg-hcgm-54cp",
"https://nvd.nist.gov/vuln/detail/CVE-2026-103059"
],
"provider_metadata": {
"cpes": [
"cpe:2.3:a:gitea:gitea:*:*:*:*:*:*:*:*"
],
"severity": "Critical"
}
},
"related_cves": [
{
"value": "CVE-2026-103059",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": "/database_specific/severity"
},
"source_id": "core-osv",
"document_id": 338732,
"published_at": "2026-10-16T08:36:29.274+00:00"
}