Skip to main content

Gitea CVE-2026-58427

| EUVDEUVD-2026-58155 HIGH
Information Exposure (CWE-200)
2026-07-21 https://github.com/go-gitea/gitea GHSA-prr9-9mp4-5gp2
7.5
CVSS 3.1 · Vendor: https://github.com/go-gitea/gitea
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain valid Gitea account (any privilege)
  2. Delivery
    Identify private organization name via API or UI
  3. Exploit
    Send authenticated GET /api/v1/orgs/{org}/members
  4. Execution
    Server skips HasOrgOrUserVisible check
  5. Impact
    Receive full member list with emails

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The attacker must possess a valid authentication token for any account on the Gitea instance - the API endpoint requires authentication, contradicting the published PR:N CVSS metric. The target organization must be configured as private (public organizations expose member lists by design, so there is no vulnerability in that context). No special roles, admin access, or organization membership is required beyond a basic authenticated account. Exploitation is limited to the /api/v1/orgs/{org}/members REST endpoint; the /members web UI route may have independent access controls. Instances where API access is network-restricted or where anonymous/public registration is disabled significantly reduce the attacker pool.

Impact

The NVD-assigned CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) carries a 7.5 score but contains a material error: PR:N implies unauthenticated exploitation, yet the CVE description, advisory, and PoC all explicitly require a valid authentication token ('Authorization: token BOB_TOKEN'). The correct privilege level is PR:L, which yields a recalculated score of approximately 6.5 (Medium). This discrepancy means defenders relying on the published CVSS score alone will overestimate the attack surface. The EPSS score (0.16%, 5th percentile) corroborates limited real-world exploitation activity. No CISA KEV listing exists. A working PoC is published in the GitHub advisory, lowering the barrier to exploitation but the requirement for a valid Gitea account meaningfully constrains the attacker pool to registered or compromised users on the target instance. The confidentiality impact is genuine - private org membership and email addresses are exposed - but integrity and availability are unaffected. Real-world priority is moderate: organizations operating private Gitea instances with sensitive membership data (e.g., internal security teams, corporate R&D orgs) should treat this as urgent; public Gitea instances with openly-visible organizations face negligible additional risk.

Exploit ScenarioDerived

An attacker with any valid Gitea account on the target instance - including a low-privilege account created for a public repository - sends a single authenticated GET request to /api/v1/orgs/targetorg/members with their token. The server returns HTTP 200 with a JSON array of all private organization members including usernames and email addresses, bypassing the intended HTTP 404 response for non-members. A publicly available PoC curl command is included in the GitHub Security Advisory, requiring no additional tooling.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Aug 14, 2026

Private organization member enumeration in Gitea allows any authenticated user to retrieve the full member roster - including emails - of a private organization via the /api/v1/orgs/{org}/members endpoint. The root cause is an incomplete fix: PR #38145 added visibility guards to ListPublicMembers and IsPublicMember but omitted the same guard from ListMembers, leaving a single missing HasOrgOrUserVisible check in routers/api/v1/org/member.go. Proof-of-concept code is publicly available in the GitHub Security Advisory; no active exploitation has been confirmed in CISA KEV, and the EPSS score of 0.16% (5th percentile) indicates low probability of widespread automated exploitation.

Earlier versions of this analysis (1)
v1 Jul 22, 2026 - 02:45

Private organization member enumeration in Gitea allows any authenticated user to retrieve the full member list - including emails - of a private organization via the /api/v1/orgs/{org}/members endpoint. All Gitea instances running v1.26.4 or earlier are affected; the flaw stems from an incomplete fix (PR #38145) that corrected ListPublicMembers and IsPublicMember but left ListMembers without the HasOrgOrUserVisible visibility gate. Publicly available exploit code exists in the form of a documented proof-of-concept curl command in the GHSA advisory. No KEV listing; exploitation is opportunistic rather than targeted given the low barrier to entry for any credentialed user.

RemediationAI

Upgrade to Gitea v1.27.0 or later, which applies the missing HasOrgOrUserVisible() guard to ListMembers() in routers/api/v1/org/member.go. The patch is confirmed in the GitHub Security Advisory GHSA-prr9-9mp4-5gp2 (https://github.com/go-gitea/gitea/security/advisories/GHSA-prr9-9mp4-5gp2) and the official release blog at https://blog.gitea.com/gitea-1.27.0-is-released/. If an immediate upgrade is not possible, a compensating control is to restrict API access to the /api/v1/orgs/*/members endpoint via a reverse proxy (e.g., block or require additional authentication on that path pattern in nginx/Caddy); note this may break legitimate tooling that calls the members API. Auditing Gitea access logs for unexpected calls to /api/v1/orgs/{org}/members from accounts not belonging to those organizations can help detect exploitation attempts retroactively.

Affected VersionsENISA

Gitea Open Source Git Server 0 ≤1.26.4

Affected Packages

go gitea.dev fix: 1.27.0
euvd gitea_open_source_git_server no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Gitea is a self-hosted, open-source Git service written in Go (pkg:go/gitea.dev). The affected code path is the ListMembers() handler in routers/api/v1/org/member.go, which services GET /api/v1/orgs/{org}/members. The root cause is CWE-200 (Exposure of Sensitive Information to Unauthorized Actor): the handler processes the request without first calling organization.HasOrgOrUserVisible() to verify that the requesting user has permission to see the organization's full membership. A parallel fix for the public_members endpoints was applied in PR #38145, confirming the intended access-control pattern exists and is functional - it was simply never ported to the ListMembers route. The leaked response body includes member logins and email addresses per the PoC output.

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

Vendor (https://github.com/go-gitea/gitea) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

Authentication is explicitly required per the description and PoC, so PR:L not PR:N; only confidentiality is impacted via member list disclosure.

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

Primary rating from Vendor (https://github.com/go-gitea/gitea).

CVSS VectorVendor: https://github.com/go-gitea/gitea

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
Analysis Updated
Aug 14, 2026 - 18:40 vuln.today
v2 - CVSS changed
CVSS changed
Aug 14, 2026 - 18:22 NVD
7.5 (HIGH)

DescriptionCVE.org

Summary

PR #38145 fixed ListPublicMembers and IsPublicMember but missed ListMembers. Any authenticated user can enumerate ALL members (not just public ones) of a private organization.

Affected Versions

<= v1.26.4 (latest) and main branch

Root Cause

routers/api/v1/org/member.go - ListMembers():

// Missing check: if !organization.HasOrgOrUserVisible(ctx, ctx.Org.Organization.AsUser(), ctx.Doer) { ctx.APIErrorNotFound() return }

Proof of Concept

Setup: privateorg (private), alice = member, bob = outsider

Bob lists ALL members of private org

curl -s "http://gitea/api/v1/orgs/privateorg/members" \ -H "Authorization: token BOB_TOKEN"

Result: HTTP 200

[{"login":"alice","email":"alice@test.com",...}]

Expected: HTTP 404

Note

This is an incomplete fix variant of PR #38145. That PR fixed public_members endpoints only. ListMembers (/orgs/{org}/members) remains unpatched.

Fix

Add to ListMembers(): if !organization.HasOrgOrUserVisible(ctx, ctx.Org.Organization.AsUser(), ctx.Doer) { ctx.APIErrorNotFound() return }

Executive ViewAI

Why It Matters

A missing authorization check in Gitea allows any authenticated user to enumerate the complete roster and email addresses of private organizations. With proof-of-concept code now publicly available, this threatens all self-hosted Gitea instances and creates immediate risk for credential harvesting and targeted phishing campaigns. Leadership should prioritize immediate patching to prevent internal directory exposure.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Medium
popular self-hosted Git platform, not universally deployed
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Gitea

View all
CVE-2026-60004 CRITICAL POC
9.8

Remote code execution in Gitea (self-hosted Git service) via a code-injection flaw (CWE-94) allows attackers to run arbi

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-72867 CRITICAL POC
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

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-59774 CRITICAL POC
9.8

Path traversal in Gitea's Org-mode (`.org`) markup renderer allows an attacker who can get Org-mode content rendered by

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-2026-24791 HIGH POC
8.1 Jun 17

Authorization bypass in Gitea versions 1.22.3 through 1.26.1 allows holders of `public-only` access tokens or OAuth gran

Vendor StatusVendor

SUSE

Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected

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