Gitea API token scope escalation through HTTP signatures
Gitea allows a token with write:user scope to register an attacker-controlled SSH public key on the token owner's account. API requests signed with the corresponding private key authenticate as that account through HTTP Signature without API token scope information, causing route-level token scope checks to be skipped. This converts a user-scoped token into an unscoped API authentication method while retaining the account's normal role and repository permissions.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-73804
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 20:32 UTC · Revision 1
Source evidence
Gitea API token scope escalation through HTTP signatures
core-osv · Original sourcePublished 14 Oct 2026, 14:38 UTC
Gitea allows a token with write:user scope to register an attacker-controlled SSH public key on the token owner's account. API requests signed with the corresponding private key authenticate as that account through HTTP Signature without API token scope information, causing route-level token scope checks to be skipped. This converts a user-scoped token into an unscoped API authentication method while retaining the account's normal role and repository permissions.
osv:CVE-2026-73804
Complete source record
{
"id": "37f051b603dbe302a19e298990b9ef4491aebaade7f777a995c2938677eb9546",
"url": "https://osv.dev/vulnerability/CVE-2026-73804",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Gitea API token scope escalation through HTTP signatures",
"summary": "Gitea allows a token with write:user scope to register an attacker-controlled SSH public key on the token owner's account. API requests signed with the corresponding private key authenticate as that account through HTTP Signature without API token scope information, causing route-level token scope checks to be skipped. This converts a user-scoped token into an unscoped API authentication method while retaining the account's normal role and repository permissions.",
"evidence": "osv:CVE-2026-73804",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-73804",
"aliases": [
"CVE-2026-73804",
"GHSA-q55v-4cmj-xh65"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/go-gitea/gitea",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "1dac1bb2f8593d4319125fa6bca9283000a2ddc2"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"last_affected": "1.26.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "1dac1bb2f8593d4319125fa6bca9283000a2ddc2"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.27.2"
}
]
}
}
],
"versions": [
"v1.27.1",
"v1.27.0",
"v1.27.0-rc0",
"v1.28.0-dev",
"v1.27.0-dev",
"v1.26.0-dev",
"v1.25.0-dev",
"v1.24.0-dev",
"v1.22.0-rc1",
"v1.23.0-dev",
"v1.22.0-rc0",
"v1.21.0-rc0",
"v1.22.0-dev",
"v1.20.0-rc0",
"v1.21.0-dev",
"v1.20.0-dev",
"v1.19.0-rc0",
"v1.18.0-rc0",
"v1.19.0-dev",
"v1.18.0-dev",
"v1.17.0-dev",
"v1.16.0-rc1",
"v1.15.0-rc1",
"v1.16.0-dev",
"v1.15.0-dev",
"v1.14.0-dev",
"v1.13.0-dev",
"v1.12.0-dev",
"v1.10.5",
"v1.11.0-rc1",
"v1.10.0-rc1",
"v1.11.0-dev",
"v1.9.0-rc1",
"v1.10.0-dev",
"v1.9.0-dev",
"v1.7.0-dev",
"v1.6.0-rc1",
"v1.6.0-dev",
"v1.5.0-rc1",
"v1.5.0-dev",
"v1.1.0",
"v1.0.0",
"v0.9.99"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-73804.json"
}
}
],
"modified": "2026-10-28T02:30:38.993535825Z",
"provider": "osv",
"references": [
"https://blog.gitea.com/release-of-1.27.2/",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73804.json",
"https://github.com/go-gitea/gitea/releases/tag/v1.27.2",
"https://github.com/go-gitea/gitea/security/advisories/GHSA-q55v-4cmj-xh65",
"https://nvd.nist.gov/vuln/detail/CVE-2026-73804",
"https://github.com/go-gitea/gitea/pull/38862",
"https://github.com/go-gitea/gitea/pull/38895"
],
"provider_metadata": {
"cwe_ids": [
"CWE-266",
"CWE-863"
],
"cna_assigner": "Gitea",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73804.json"
}
},
"related_cves": [
{
"value": "CVE-2026-73804",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 506718,
"published_at": "2026-10-14T14:38:00.292+00:00"
}