VulnSea

gitea has 147 CVEs on record between 2024 and 2026. Cadence is steady at roughly 79 per quarter. The busiest recent month was October 2026 with 78. The median CVSS is 6.5 (medium), with 14 rated critical. 1% have been exploited in the wild, in line with the corpus average. The dominant weakness classes are CWE-863 (37) and CWE-284 (20). Most affected products: code.gitea.io/gitea (69), gitea (52), gitea.dev (23).

CVEs per month

Last 12 months, by publish date

120102030405060708091011
Exploited share
1% vs 1% corpus
Median CVSS
6.5
Publish → KEV
—
Last 90 days
79 prev 53

Products

  • code.gitea.io/gitea 69
  • gitea 52
  • gitea.dev 23
  • Gitea Open Source Git Server 1
  • gitea.com/gitea/runner 1
  • gitea/gitea 1
147
Total CVEs
14
Critical
1
CISA KEV
1
Exploited

Gitea vulnerabilities

CVEs affecting Gitea, newest first. Open any entry for full detail, references, and exploit status.

147 CVEsRSS

CVE-2026-103059Critical· 9.1
1mo ago

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 SQLi…

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 SQLi…

▾ Midnightgitea · giteaEPSS 0.39%via NVD
CVE-2026-101027High· 7.7
1mo ago

When `[migrations] ALLOWED_DOMAINS` was configured, a hostname matching the allow list was accepted without checking its resolved address against the local-network restrictions

When `[migrations] ALLOWED_DOMAINS` was configured, a hostname matching the allow list was accepted without checking its resolved address against the local-network restrictions. A user who can start repository migrations and control the …

▾ Twilightgitea · giteaEPSS 0.23%via NVD
CVE-2026-103670High· 7.5
1mo ago

When a Gitea Actions run was inserted, older runs in the same workflow-level concurrency group were cancelled without checking whether the new run still needed approval

When a Gitea Actions run was inserted, older runs in the same workflow-level concurrency group were cancelled without checking whether the new run still needed approval. Because fork pull request runs are inserted under the base reposito…

▾ Twilightgitea · giteaEPSS 0.21%via NVD
CVE-2026-103667Medium· 5.4
1mo ago

Gitea's container registry served blob downloads with a `Content-Type` taken from the media type declared in pushed image manifests, without a `Content-Disposition` or restrictive content security policy

Gitea's container registry served blob downloads with a `Content-Type` taken from the media type declared in pushed image manifests, without a `Content-Disposition` or restrictive content security policy. A user who can push container im…

▾ Sunlitgitea · giteaEPSS 0.19%via NVD
CVE-2026-103504High· 8.1
1mo ago

Changing an organization team's permission through the API with only the `permission` field did not rebuild the team's per-unit access, and the requested level was not applied as a cap

Changing an organization team's permission through the API with only the `permission` field did not rebuild the team's per-unit access, and the requested level was not applied as a cap. After an organization owner demoted a team, for exa…

▾ TwilightGitea · gitea.devEPSS 0.26%via NVD
CVE-2026-95106Critical· 9.1
1mo ago

Gitea accepted pushed Git trees containing two entries with the same name, which Git's own consistency checks reject

Gitea accepted pushed Git trees containing two entries with the same name, which Git's own consistency checks reject. Gitea's web views resolved such a path to the first entry, while `git checkout`, Gitea Actions, and release archives us…

▾ Midnightgitea · giteaEPSS 0.33%via NVD
CVE-2026-89430High· 8.1
1mo ago

Gitea validated a push mirror's remote address against the `[migrations]` allow and block lists only when the mirror was created

Gitea validated a push mirror's remote address against the `[migrations]` allow and block lists only when the mirror was created. Each synchronization passed the stored address directly to `git push`, so a name that later resolved to a b…

▾ Twilightgitea · giteaEPSS 0.27%via NVD
CVE-2026-95112Medium· 6.5
1mo ago

When processing issue and comment bodies, Gitea scanned the entire preceding text for action keywords such as "closes" or "fixes" once per Markdown link, giving processing time quadratic in the input size

When processing issue and comment bodies, Gitea scanned the entire preceding text for action keywords such as "closes" or "fixes" once per Markdown link, giving processing time quadratic in the input size. An authenticated user able to s…

▾ Sunlitgitea · giteaEPSS 0.31%via NVD
CVE-2026-70357High· 7.5
1mo ago

Gitea validates a repository migration hostname against its network allow and block lists before invoking Git, but the Git subprocess independently resolves the hostname when connecting

Gitea validates a repository migration hostname against its network allow and block lists before invoking Git, but the Git subprocess independently resolves the hostname when connecting. An attacker who can start a migration and control …

▾ Twilightgitea · giteaEPSS 0.37%via NVD
CVE-2026-104636High· 7.5
1mo ago

Gitea validated the initial remote URL for push mirrors, wiki remote checks, and fetches of migrated pull request heads, but the subsequent raw Git operations followed HTTP redirects without revalidating the destination

Gitea validated the initial remote URL for push mirrors, wiki remote checks, and fetches of migrated pull request heads, but the subsequent raw Git operations followed HTTP redirects without revalidating the destination. A repository adm…

▾ Twilightgitea · giteaEPSS 0.26%via NVD
CVE-2026-94205Critical· 9.8
1mo ago

Gitea Actions decided whether a fork pull request run needed approval based on the user who triggered the event rather than the pull request author

Gitea Actions decided whether a fork pull request run needed approval based on the user who triggered the event rather than the pull request author. For `pull_request` activity triggered by a maintainer during ordinary triage, such as ad…

▾ Midnightgitea · giteaEPSS 0.62%via NVD
CVE-2026-79960High· 7.1
1mo ago

When a push was authenticated with a deploy key, Gitea recorded the repository owner as the pusher, so permission checks in the push hook pipeline evaluated the owner instead of the deploy key

When a push was authenticated with a deploy key, Gitea recorded the repository owner as the pusher, so permission checks in the push hook pipeline evaluated the owner instead of the deploy key. A holder of a writable deploy key could cre…

▾ Twilightgitea · giteaEPSS 0.21%via NVD
CVE-2026-96404High· 8.1
1mo ago

When Gitea's web installer is reachable against a database that already contains users, such as after `INSTALL_LOCK` has been reset to `false`, submitting the install form with an administrator username matching an existing account issue…

When Gitea's web installer is reachable against a database that already contains users, such as after `INSTALL_LOCK` has been reset to `false`, submitting the install form with an administrator username matching an existing account issue…

▾ Twilightgitea · giteaEPSS 0.58%via NVD
CVE-2026-96400Medium· 4.3
1mo ago

With `[migrations] ALLOWED_DOMAINS` set to a matching entry such as `*` or a hostname wildcard, Gitea's migration URL validation could permit reserved and link-local addresses, such as `169.254.169.254`, even when `ALLOW_LOCALNETWORKS = …

With `[migrations] ALLOWED_DOMAINS` set to a matching entry such as `*` or a hostname wildcard, Gitea's migration URL validation could permit reserved and link-local addresses, such as `169.254.169.254`, even when `ALLOW_LOCALNETWORKS = …

▾ Sunlitgitea · giteaEPSS 0.20%via NVD
CVE-2026-96399High· 7.5
1mo ago

A repository's external issue tracker regular expression containing alternating capture groups could produce invalid slice indexes when Gitea rendered issue references, causing a runtime panic that terminated the Gitea process

A repository's external issue tracker regular expression containing alternating capture groups could produce invalid slice indexes when Gitea rendered issue references, causing a runtime panic that terminated the Gitea process. A user wh…

▾ Twilightgitea · giteaEPSS 0.35%via NVD
CVE-2026-96589Medium· 4.3
1mo ago

When a private repository is transferred to a user who lacks access, Gitea grants that recipient temporary read access as a collaborator so they can review the repository

When a private repository is transferred to a user who lacks access, Gitea grants that recipient temporary read access as a collaborator so they can review the repository. Rejecting or cancelling the transfer did not revoke this collabor…

▾ Sunlitgitea · giteaEPSS 0.24%via NVD
CVE-2026-96580High· 7.5
1mo ago

Gitea expanded a workflow's static `strategy.matrix` into its full Cartesian product without a size limit when creating a run, before the fork pull request approval gate applied

Gitea expanded a workflow's static `strategy.matrix` into its full Cartesian product without a size limit when creating a run, before the fork pull request approval gate applied. A user who can open a pull request from a fork could submi…

▾ Twilightgitea · giteaEPSS 0.35%via NVD
CVE-2026-73278Critical· 9.8
1mo ago

Gitea's OAuth2 and OpenID Connect sign-in paths do not require a WebAuthn challenge when WebAuthn is the account's only configured second factor

Gitea's OAuth2 and OpenID Connect sign-in paths do not require a WebAuthn challenge when WebAuthn is the account's only configured second factor. A party able to authenticate through the affected external identity flow can obtain a full …

▾ Midnightgitea · giteaEPSS 0.47%via NVD
CVE-2026-60004Critical· 9.8CISA KEV0dayPoC
2mo ago

Gitea before 1.27.1 allows remote code execution via the diffpatch API through Git hook installation.

Gitea before 1.27.1 allows remote code execution via the diffpatch API through Git hook installation.

▾ HadalGitea · GiteaEPSS 24%via CVEORG
CVE-2026-34966High· 7.6PoC
3mo ago

Gitea prior to 1.27.0 contains a server-side request forgery vulnerability that allows authenticated attackers to bypass SSRF protections by exploiting HTTP fetch operations in migration and OAuth avatar code paths that use Go's default …

Gitea prior to 1.27.0 contains a server-side request forgery vulnerability that allows authenticated attackers to bypass SSRF protections by exploiting HTTP fetch operations in migration and OAuth avatar code paths that use Go's default …

▾ MidnightGitea · GiteaEPSS 0.39%via NVD
GO-2026-6074None
3mo ago

Gitea: API Fork Endpoint Authorization Bypass Allows Organization Members to Bypass Repository Creation Restrictions in code.gitea.io/gitea

Gitea: API Fork Endpoint Authorization Bypass Allows Organization Members to Bypass Repository Creation Restrictions in code.gitea.io/gitea

▾ Sunlitgitea · code.gitea.io/giteavia OSV
CVE-2026-59765Medium· 7.5
3mo ago

Gitea: SSRF via Migration Asset Downloads Bypasses hostmatcher — Reads Internal Files and Cloud Metadata

Gitea: SSRF via Migration Asset Downloads Bypasses hostmatcher — Reads Internal Files and Cloud Metadata

▾ Sunlitgitea · code.gitea.io/giteaEPSS 0.37%via GHSA
CVE-2026-58429Medium· 4.9
3mo ago

Gitea: Public-Only Personal access tokens scope bypass in Organization and Permission Endpoints

Gitea: Public-Only Personal access tokens scope bypass in Organization and Permission Endpoints

▾ Sunlitgitea · code.gitea.io/giteaEPSS 0.47%via GHSA
CVE-2026-55984Low· 2.7
3mo ago

Gitea: Null Pointer Dereference in AddTime API Causes Authenticated Denial of Service

Gitea: Null Pointer Dereference in AddTime API Causes Authenticated Denial of Service

▾ Sunlitgitea · code.gitea.io/giteaEPSS 0.46%via GHSA
CVE-2026-58435Medium· 5.4
3mo ago

Gitea LFS Deploy-Key Privilege Escalation

Gitea LFS Deploy-Key Privilege Escalation

▾ Sunlitgitea · code.gitea.io/giteaEPSS 0.29%via GHSA
CVE-2026-55987High· 8.1
3mo ago

Gitea: OAuth2 sign-in reactivates an administrator-deactivated account on auth sources without refresh tokens (incomplete fix of #38009)

Gitea: OAuth2 sign-in reactivates an administrator-deactivated account on auth sources without refresh tokens (incomplete fix of #38009)

▾ Twilightgitea · code.gitea.io/giteaEPSS 0.41%via GHSA
CVE-2026-58437High· 7.1
3mo ago

Gitea: Repository Visibility Manipulation via Git Push Options

Gitea: Repository Visibility Manipulation via Git Push Options

▾ Twilightgitea · code.gitea.io/giteaEPSS 0.34%via GHSA
CVE-2026-56657Medium· 6.2
3mo ago

Gitea SSH Key Parser Denial of Service

Gitea SSH Key Parser Denial of Service

▾ Sunlitgitea · code.gitea.io/giteaEPSS 0.17%via OSV
CVE-2026-58436High
3mo ago

Gitea: ParseAcceptLanguage quadratic-time DoS via Locale middleware on unauthenticated requests

Gitea: ParseAcceptLanguage quadratic-time DoS via Locale middleware on unauthenticated requests

▾ Twilightgitea · code.gitea.io/giteaEPSS 0.61%via GHSA
CVE-2026-58314High· 7.7
3mo ago

Gitea: Two SSRF findings

Gitea: Two SSRF findings

▾ Twilightgitea · code.gitea.io/giteaEPSS 0.40%via OSV
Gitea vulnerabilities (CVEs) — page 3 · VulnSea