CVE-2026-20706
criticalPriorität · verfolgen · 0OT-Risiko · erhöhtEPSS 0.006 · 48. PerzentilDEEURUUSEPSS · bewertet 2026-10-27
Gitea versions up to and including 1.26.1 allow repository archive downloads to bypass token scope checks on the web archive download endpoint.
cvss
Technischer Schweregrad, 0–10. Eine Zeile je Quelle.
Basiswert 0–10 · höher = schwerwiegender · Vektor überfahren zum Auflösen⚠ Quellen uneinig · high–critical · 8.3–9.1
SSVC
Eine Handlungsentscheidung — aus Ausnutzung und Auswirkung.
schwächen
Die CWE-Schwächeklassen, zu denen dies gehört.
betroffene Produkte (7)
Betroffene Produkte und Versionsbereiche.
Advisories (3)
Hersteller- und Ökosystem-Meldungen dazu.
- WID-SEC-W-2026-1637Gitea: Mehrere SchwachstellenDeutsch2026-05-21csaf · cert_bundDE
Ein Angreifer kann mehrere Schwachstellen in Gitea ausnutzen, um möglicherweise erweiterte Privilegien zu erlangen, Sicherheitsmaßnahmen zu umgehen oder Daten zu manipulieren und offenzulegen.
- GHSA-cr4g-f395-h25hGitea: Token scope bypass on web archive download endpoint2026-06-16ghsa · osvUS
## Summary PR #37698 added checkDownloadTokenScope to /raw/*, /media/*, and attachment download web endpoints. The /archive/* endpoint (repo.Download in routers/web/repo/repo.go:372) was not included in the fix. This endpoint accepts OAuth2 tokens via webAuth.AllowOAuth2 (registered at routers/web/web.go:1649-1652) but does not call checkDownloadTokenScope or CheckRepoScopedToken. A personal access token with any non-repository scope (e.g., read:issue or read:misc) can download full repository archives (zip/tar.gz) of private repositories the token owner has access to. ## Impact Scope escalation: tokens scoped to non-repository categories can access full repository content through the archive download endpoint. Higher impact than endpoints fixed in #37698 because /archive/* serves the entire repository. ## Steps to Reproduce 1. Create a personal access token with ONLY read:misc scope 2. Access: GET /{owner}/{private-repo}/archive/main.tar.gz 3. Archive is served (200 OK) instead of being rejected (403 Forbidden) Compare with fixed endpoints: - GET /{owner}/{private-repo}/raw/branch/main/README.md correctly returns 403 ## Root Cause Download function in routers/web/repo/repo.go:372 does not call checkDownloadTokenScope. The outer group middleware reqUnitCodeReader checks repository permission but not token scope. The API equivalent (/api/v1/repos/{owner}/{repo}/archive/*) IS properly scoped via tokenRequiresScopes(AccessTokenScopeCategoryRepository). The git HTTP endpoints are scoped via CheckRepoScopedToken in httpBase. ## Suggested Fix Add checkDownloadTokenScope(ctx) to Download and InitiateDownload in routers/web/repo/repo.go. The function already exists in routers/web/repo/download.go (same package). ## Discovery Method Variant analysis of PR #37698 — reviewed all web routes with webAuth.AllowOAuth2 middleware.
- GO-2026-5334Gitea: Token scope bypass on web archive download endpoint in code.gitea.io/gitea2026-06-25vendor · osvUS
Gitea: Token scope bypass on web archive download endpoint in code.gitea.io/gitea
auch bekannt als (6)
Weitere Namen und Kennungen dieser Entität.
quellen
Welche Quellen diesen Datensatz belegen und wann.
Referenzen (12)
Externe Belege — Patches, Meldungen, Analysen.
- https://blog.gitea.com/release-of-1.26.2/cnnvd
- https://github.com/go-gitea/gitea/pull/37735cnnvd
- https://github.com/go-gitea/gitea/releases/tag/v1.26.2cnnvd
- https://github.com/go-gitea/gitea/security/advisories/GHSA-cr4g-f395-h25hcnnvd
- https://blog.gitea.com/release-of-1.26.2/enisa_euvd
- https://github.com/go-gitea/gitea/pull/37735enisa_euvd
- https://github.com/go-gitea/gitea/releases/tag/v1.26.2enisa_euvd
- https://github.com/go-gitea/gitea/security/advisories/GHSA-cr4g-f395-h25henisa_euvd
Angreifer nutzen Schwachstellen wie diese gegen im Internet exponierte Dienste aus. Sehen Sie mit einem kostenlosen Passiv-Scan, was exponiert ist.
Kostenloser Scan