Skip to main content

Gitea CVE-2026-26247

| EUVDEUVD-2026-41629 CRITICAL
Improper Access Control (CWE-284)
2026-07-03 Gitea GHSA-m5ch-ppfx-xv3v
9.1
CVSS 3.1 · Vendor: Gitea
Share

Severity by source

Vendor (Gitea) PRIMARY
9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI
7.4 HIGH

Network-reachable and unauthenticated (PR:N/AV:N), but realistic exploitation requires intercepting a victim's authorization code, so AC:H; account takeover yields C:H/I:H, no availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Gitea).

CVSS VectorVendor: Gitea

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

4
Source Code Evidence Fetched
Jul 22, 2026 - 18:33 vuln.today
Analysis Generated
Jul 22, 2026 - 18:33 vuln.today
CVE Published
Jul 03, 2026 - 20:19 cve.org
CRITICAL 9.1
CVE Published
Jul 03, 2026 - 20:19 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Gitea versions before 1.25.5 do not persist the OAuth2 PKCE S256 challenge method correctly during authorization, allowing token exchange without the expected verifier check.

AnalysisAI

OAuth2 PKCE protection bypass in Gitea before 1.25.5 allows remote attackers to complete an authorization-code token exchange without a valid code verifier because the server fails to persist the S256 challenge method during authorization. Rated CVSS 9.1 with SSVC technical impact of 'total', though EPSS is low (0.17%, 6th percentile) and there is no public exploit identified at time of analysis. The fix is confirmed in release v1.25.5 (PRs 36462 and 36477), which was reported by the Gitea project itself.

Technical ContextAI

Gitea is a self-hosted, lightweight open-source Git service written in Go that includes a built-in OAuth2/OpenID Connect provider (identified by CPE cpe:2.3:a:gitea:gitea_open_source_git_server). PKCE (Proof Key for Code Exchange, RFC 7636) hardens the OAuth2 authorization-code flow - especially for public clients - by binding the issued authorization code to a code_challenge, so the code cannot be redeemed without the matching code_verifier. The source evidence shows the root cause is a Go switch statement in routers/web/auth/oauth2_provider.go where 'case "S256":' and 'case "plain":' were written as separate empty cases; because Go cases do not fall through, the S256 challenge method was never properly recorded/persisted, so at token-exchange time the server did not enforce the verifier check. The fix collapses them into a single 'case "S256", "plain":'. The CWE-284 (Improper Access Control) classification reflects that a required authorization check (the PKCE verifier validation) was effectively skipped.

RemediationAI

Upgrade to Gitea 1.25.5 or later - this is the vendor-released patch (see the release at https://github.com/go-gitea/gitea/releases/tag/v1.25.5 and release notes at https://blog.gitea.com/release-of-1.25.5/; code fixes in https://github.com/go-gitea/gitea/pull/36462 and https://github.com/go-gitea/gitea/pull/36477). There is no configuration-level fix for the PKCE persistence bug itself, so patching is the primary and recommended remediation. As interim compensating controls if you cannot upgrade immediately: restrict which OAuth2 applications are registered on the instance and audit/remove untrusted registered clients (trade-off: administrative overhead and possible disruption to legitimate integrations), tightly constrain each OAuth application's allowed redirect URIs to exact, trusted values to limit authorization-code leakage (trade-off: breaks clients relying on loose redirect matching), and place the Gitea OAuth2 provider endpoints behind network restrictions or a reverse proxy limited to trusted networks where feasible (trade-off: may block legitimate external SSO consumers). Rotating client secrets after upgrade is also advisable if you suspect exposure.

More in Gitea

View all
CVE-2026-27771 HIGH POC
8.2 Jul 03

Broken access control in Gitea's Composer package registry (versions up to and including 1.26.1) lets remote attackers r

CVE-2022-30781 HIGH POC
7.5 May 16

Gitea before 1.16.7 does not escape git fetch remote. Rated high severity (CVSS 7.5), this vulnerability is remotely exp

CVE-2020-14144 HIGH POC
7.2 Oct 16

The git hook feature in Gitea 1.1.0 through 1.12.5 might allow for authenticated remote code execution in customer envir

CVE-2024-6886 CRITICAL POC
10.0 Aug 06

Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Gitea Gitea

CVE-2026-20896 CRITICAL POC
9.8 Jul 03

Reverse-proxy authentication bypass in the official Gitea Docker image (versions up to and including 1.26.2) allows any

CVE-2026-58053 CRITICAL POC
9.4 Jun 28

Container escape in Gitea act_runner (Docker backend, through act 0.262.0) lets an authenticated user with workflow-exec

CVE-2019-11229 HIGH POC
8.8 Apr 15

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

CVE-2026-57894 HIGH POC
8.5 Jul 21

Server-side request forgery and internal repository exfiltration in Gitea before 1.27.0 lets a low-privileged authentica

CVE-2020-13246 HIGH POC
7.5 May 20

An issue was discovered in Gitea through 1.11.5. Rated high severity (CVSS 7.5), this vulnerability is remotely exploita

CVE-2022-0905 HIGH POC
7.1 Mar 10

Missing Authorization in GitHub repository go-gitea/gitea prior to 1.16.4. Rated high severity (CVSS 7.1), this vulnerab

CVE-2022-1058 MEDIUM POC
6.1 Mar 24

Open Redirect on login in GitHub repository go-gitea/gitea prior to 1.16.5. Rated medium severity (CVSS 6.1), this vulne

CVE-2026-72867 CRITICAL
9.9 Aug 10

Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us

Share

CVE-2026-26247 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy