Gitea
CVE-2025-68943
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach public Gitea explore page
-
ExploitRequest users list with sort=lastlogin
-
ExecutionObserve login-time ordering in response
-
ImpactHarvest user activity metadata for targeting
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection System info exposure prevention
|
| Exploitation Conditions | Exploitation requires that the Gitea instance expose the /explore/users (or /explore/organizations) listing to the requester - on public or internally-reachable instances this is accessible to unauthenticated visitors by default. The specific trigger is supplying the sort query parameter with value lastlogin or reverselastlogin (and related leaking orders such as leastupdate/reverseleastupdate) to the explore endpoint on any Gitea version before 1.21.8. Limiting factors: if the explore pages are disabled or restricted to authenticated users, or the instance requires login to browse, the unauthenticated path is cut off; impact is also limited to disclosing user last-login timestamps rather than any credential or content access. |
| Impact | This is a genuine but low-severity information-disclosure issue, correctly rated CVSS 5.3 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) - network-reachable, low complexity, no privileges or user interaction, with only limited confidentiality impact (C:L) and no integrity or availability impact. The signals are consistent rather than conflicting: EPSS is low at 0.36% (27th percentile), there is no CISA KEV listing, and no public exploit code was identified, all of which align with a minor privacy leak rather than a high-priority intrusion vector. The CVSS network/unauthenticated vector is corroborated by the source code: an anonymous HTTP GET to /explore/users?sort=lastlogin exposes login timestamps, so the AV:N/PR:N rating is well-founded. The 'exploit' yields only metadata (when users last logged in), not account compromise, code execution, or credential theft - so despite the trivially-easy exploitation, real-world risk is low and this should be patched on a routine schedule rather than as an emergency. The main value of the disclosed data is reconnaissance (identifying active vs. dormant accounts for targeted follow-on attacks). |
| Exploit ScenarioDerived | An unauthenticated attacker visits a public Gitea instance and requests the explore/users listing with the sort parameter set to lastlogin (e.g. /explore/users?sort=lastlogin), causing the server to order and thereby reveal users' last-login times. The attacker harvests this activity metadata to profile which accounts are active or dormant for targeted phishing or password-guessing. No public exploit code is required - the attack is a single crafted query string against the standard web UI. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Gitea instances running versions before 1.21.8 expose users' last-login timestamps to anyone who can reach the public explore listings, because the /explore/users endpoint accepted sort values such as lastlogin and reverselastlogin (and activity-leaking variants like leastupdate and reverseleastupdate) that were never intended to be user-selectable. The issue is network-reachable, requires no authentication and no user interaction (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N, CVSS 5.3, CWE-497), and the only impact is limited confidentiality loss - no credentials, repository content, or state modification is exposed. No public exploit code has been identified at time of analysis and the CVE is not in CISA KEV; EPSS is low at 0.36% (27th percentile), consistent with a low-value reconnaissance/enumeration bug rather than an active campaign. Exploitation simply requires issuing a crafted sort query parameter against an instance whose explore pages are publicly accessible or reachable from an internal network.
RemediationAI
Upgrade to Gitea 1.21.8 or later - vendor-released patch: 1.21.8 (with 1.21.9 and 1.21.10 also containing the fix) - as described in the release announcement at https://blog.gitea.com/release-of-1.21.8-and-1.21.9-and-1.21.10/ and the fixing pull request https://github.com/go-gitea/gitea/pull/29430. The patch works by restricting explore sorting to an allow-list (newest, oldest, alphabetically, reversealphabetically) and returning HTTP 404 for any other sort value, so no configuration change is needed once applied. If upgrading immediately is not possible, the practical compensating controls are to require authentication for browsing the instance (for example by disabling anonymous/public access so that the explore pages and their sort parameters are unreachable without a login; trade-off: fully public-facing repositories and profiles become inaccessible to visitors) or to front the instance with a reverse proxy or WAF rule that rejects or strips requests to /explore/users and /explore/organizations carrying sort=lastlogin, sort=reverselastlogin, sort=leastupdate or sort=reverseleastupdate (trade-off: introduces a custom filter that must be maintained and can be bypassed by alternate paths or encodings, providing only partial mitigation). Because the exposed data is limited to last-login timestamps and the vector is unauthenticated but read-only, these controls should be treated as temporary while the upgrade is scheduled.
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 flaw is a missing allow-list on the sort parameter of Gitea's explore views and the underlying user search model. The search layer defined SearchUserOptions with no restriction on which sort orders callers could request, so arbitrary orderings recognized internally by the ORM - including lastlogin, reverselastlogin, leastupdate and reverseleastupdate - were reachable directly through the query string. The upstream fix (PR 29430, shipped in v1.21.8) adds a SupportedSortOrders container.Set field to SearchUserOptions, populates it in routers/web/explore/user.go and routers/web/explore/org.go with only newest, oldest, alphabetically and reversealphabetically, and rejects anything else with HTTP 404 in RenderUserSearch; the corresponding dropdown entries were also removed from templates/explore/search.tmpl and an integration test (tests/integration/explore_user_test.go) was added asserting that lastlogin, reverselastlogin, leastupdate and reverseleastupdate now return 404. The affected component is the Go-based code.gitea.io/gitea web/explore surface, tracked generically by CPE cpe:2.3:a:gitea:gitea:*:*:*:*:*:-:*:* for all releases before 1.21.8. CWE-497 (Exposure of Sensitive System Information to an Unauthorized Control Sphere) captures the root cause precisely: an internal, non-security-critical data ordering was unintentionally exposed as a publicly selectable sort mode, turning a benign ordering feature into a user-activity disclosure oracle.
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
A single unauthenticated HTTP request to the explore endpoint leaks login-time metadata, so AV:N/AC:L/PR:N/UI:N with only low confidentiality impact and no integrity or availability effect.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
DescriptionCVE.org
Gitea before 1.21.8 inadvertently discloses users' login times by allowing (for example) the lastlogintime explore/users sort order.
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)CVE.org
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