Gitea
CVE-2025-68944
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain under-scoped Gitea API token
-
ExploitSend request to package registry endpoint (Conan/Container)
-
ExecutionScope check bypassed, token accepted
-
ImpactRead or write packages beyond granted scope
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service Proxy/intermediary controls
|
| Exploitation Conditions | Requires an attacker to already possess a valid Gitea access token whose scope does NOT include package permissions; the flaw is that the Conan and Container (and related NuGet) package registry authentication paths failed to verify the token carried read:package/write:package/all scope before issuing a package authorization token, so a lower-scoped token was wrongly accepted. Exploitation is therefore limited to instances where package registries are in use and the attacker can present some valid token; it does not permit fully anonymous access and is bounded to package read/write operations rather than full repository or admin compromise. |
| Impact | This is a moderate-severity, confused-deputy token-scope flaw (CWE-441) in Gitea's package registries, and the aggregate signals point to a LOW real-world priority rather than an urgent one. EPSS is 0.28% (18th percentile) indicating low predicted exploitation, there is no CISA KEV listing (not actively exploited), and no public exploit code was identified - only the vendor fix PR (#31967) is available. The NVD CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/C:N/I:L/A:N = 5.3) is INTERNALLY INCONSISTENT with the described defect: the vulnerability is about a scoped access token being accepted by the Conan/Container/NuGet package endpoints despite lacking the required read:package/write:package scope, so exploitation inherently requires possession of a valid (but under-scoped) Gitea token - i.e. PR should be L, not N. The PR:N rating overstates ease of attack; treat this as an authenticated scope-escalation issue, not an unauthenticated one. The source diff also shows package operations (read and write) being reachable, so the real impact plausibly touches confidentiality as well as the integrity (I:L) that NVD recorded. Net: genuine but low-urgency; patch during normal maintenance. |
| Exploit ScenarioDerived | An attacker who already holds a legitimate Gitea personal access token scoped only for non-package operations (e.g. repository read) presents it to a package registry endpoint such as the Conan or Container API; because the token scope is not properly propagated/enforced, the under-scoped token is accepted and the attacker reads or pushes packages it should not be authorized for. No public exploit code exists, and the network attack vector with low complexity makes it trivial once any valid token is obtained. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Gitea before 1.22.2 improperly validates access token scopes in its Conan, Container, and NuGet package registries, allowing an authenticated attacker who holds a valid token lacking package permissions to obtain a package authorization token and perform unauthorized read/write operations on packages (confused deputy, CWE-441). The flaw requires the attacker to already possess a valid Gitea access token and only affects instances where package registries are enabled; it does not enable anonymous access or full repository compromise. No public exploit code or active exploitation has been identified, and with an EPSS of 0.28% (18th percentile), the real-world priority is low.
RemediationAI
Upgrade to Gitea 1.22.2 or later, which includes the vendor-released patch for CVE-2025-68944 (see https://github.com/go-gitea/gitea/releases/tag/v1.22.2). The fix is also detailed in PR https://github.com/go-gitea/gitea/pull/31967. If immediate upgrade is not possible, consider disabling unused package registries (Conan, Container, NuGet) to remove the attack surface, although this may disrupt legitimate package workflows. Alternatively, restrict network access to the package registry endpoints to trusted users or networks, and monitor audit logs for unusual package authorization token issuance or package operations. Note that simply rotating or removing tokens is not a sufficient mitigation because any valid token-even one with no package scope-could be abused. Ensure all access tokens are reviewed and that only necessary scopes are granted, but recognize that the vulnerability bypasses scope enforcement regardless.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in go
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is a confused deputy (CWE-441) in Gitea's package registry authentication. Gitea issues access tokens with scopes such as read:package, write:package, or all, which should gate package operations. The affected registries-Conan, Container, and NuGet-used a token parsing routine that extracted only the user ID (ParseAuthorizationToken) and failed to propagate the token's scope into the request context. As a result, the subsequent authorization check either never verified package-specific scopes or accepted any valid token regardless of its scope. The patch (PR 31967) replaces ParseAuthorizationToken with ParseAuthorizationRequest, which returns both the user ID and the scope, stores the scope in the auth data store, and adds explicit HasAnyScope checks for read:package, write:package, or all before issuing package authorization tokens. The affected CPE is cpe:2.3:a:gitea:gitea:*:*:*:*:*:-:*:*, covering all versions prior to 1.22.2.
Know when Gitea gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Exploitation needs a valid but under-scoped token so PR:L (not PR:N); network-reachable registry API with low complexity; scope bypass enables unauthorized package read (C:L) and write (I:L).
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
Gitea before 1.22.2 sometimes mishandles the propagation of token scope for access control within one of its own package registries.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)NVD
Remote code execution in Gitea (self-hosted Git service) via a code-injection flaw (CWE-94) allows attackers to run arbi
Broken access control in Gitea's Composer package registry (versions up to and including 1.26.1) lets remote attackers r
Gitea before 1.16.7 does not escape git fetch remote. Rated high severity (CVSS 7.5), this vulnerability is remotely exp
The git hook feature in Gitea 1.1.0 through 1.12.5 might allow for authenticated remote code execution in customer envir
Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Gitea Gitea
Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us
Reverse-proxy authentication bypass in the official Gitea Docker image (versions up to and including 1.26.2) allows any
Path traversal in Gitea's Org-mode (`.org`) markup renderer allows an attacker who can get Org-mode content rendered by
Container escape in Gitea act_runner (Docker backend, through act 0.262.0) lets an authenticated user with workflow-exec
models/repo_mirror.go in Gitea before 1.7.6 and 1.8.x before 1.8-RC3 mishandles mirror repo URL settings, leading to rem
Server-side request forgery and internal repository exfiltration in Gitea before 1.27.0 lets a low-privileged authentica
Authorization bypass in Gitea versions 1.22.3 through 1.26.1 allows holders of `public-only` access tokens or OAuth gran
NVD
CVE.org
EPSS
GitHub
Exploit-DB