<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 20 Oct 2026 16:14:45 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-58429 — Public-Only Personal access tokens scope bypass in Organization and Permission Endpoints</title>
      <link>https://db.gcve.eu/vuln/cve-2026-58429</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Gitea Open Source Git Server&lt;/p&gt;
&lt;p&gt;Public-Only Personal access tokens scope bypass in Organization and Permission Endpoints&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Gitea Open Source Git Server&lt;/p&gt;
&lt;p&gt;Public-Only Personal access tokens scope bypass in Organization and Permission Endpoints&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-58429</guid>
    </item>
    <item>
      <title>GHSA-fq2p-5p22-8g6j — Gitea: Public-Only Personal access tokens scope bypass in Organization and Permission Endpoints</title>
      <link>https://db.gcve.eu/vuln/ghsa-fq2p-5p22-8g6j</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: code.gitea.io/gitea&lt;/p&gt;
&lt;p&gt;### Summary
A personal access token restricted with the public-only scope can still retrieve private organization membership and organization permission details for its own account through organization-listing endpoints. This bypass breaks the intended guarantee that such tokens are limited to public resources only.&lt;/p&gt;
&lt;p&gt;### Details
The issue affects the following endpoints:
GET /api/v1/user/orgs
GET /api/v1/users/{username}/orgs/{org}/permissions&lt;/p&gt;
&lt;p&gt;The application correctly prevents a public-only token from directly accessing a private organization through:
GET /api/v1/orgs/{org}&lt;/p&gt;
&lt;p&gt;However, that same token can still obtain private organization data through alternate code paths.&lt;/p&gt;
&lt;p&gt;The root cause is inconsistent enforcement of the public-only restriction. The middleware responsible for blocking non-public organization access depends on route context being populated with the target organization. That assumption does not hold for all affected routes.&lt;/p&gt;
&lt;p&gt;For GET /api/v1/user/orgs, the route does not apply checkTokenPublicOnly() at all.&lt;/p&gt;
&lt;p&gt;For GET /api/v1/users/{username}/orgs, the middleware is present, but it evaluates ctx.ContextUser, which represents the user named in the path, not the organization objects returned by the handler. Since ctx.Org.Organization is not populated for these responses, private organization results are not filtered.&lt;/p&gt;
&lt;p&gt;The organization listing logic then uses the effective relationship between the authenticated user and the target user to determine visibility. Whe…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: code.gitea.io/gitea&lt;/p&gt;
&lt;p&gt;### Summary
A personal access token restricted with the public-only scope can still retrieve private organization membership and organization permission details for its own account through organization-listing endpoints. This bypass breaks the intended guarantee that such tokens are limited to public resources only.&lt;/p&gt;
&lt;p&gt;### Details
The issue affects the following endpoints:
GET /api/v1/user/orgs
GET /api/v1/users/{username}/orgs/{org}/permissions&lt;/p&gt;
&lt;p&gt;The application correctly prevents a public-only token from directly accessing a private organization through:
GET /api/v1/orgs/{org}&lt;/p&gt;
&lt;p&gt;However, that same token can still obtain private organization data through alternate code paths.&lt;/p&gt;
&lt;p&gt;The root cause is inconsistent enforcement of the public-only restriction. The middleware responsible for blocking non-public organization access depends on route context being populated with the target organization. That assumption does not hold for all affected routes.&lt;/p&gt;
&lt;p&gt;For GET /api/v1/user/orgs, the route does not apply checkTokenPublicOnly() at all.&lt;/p&gt;
&lt;p&gt;For GET /api/v1/users/{username}/orgs, the middleware is present, but it evaluates ctx.ContextUser, which represents the user named in the path, not the organization objects returned by the handler. Since ctx.Org.Organization is not populated for these responses, private organization results are not filtered.&lt;/p&gt;
&lt;p&gt;The organization listing logic then uses the effective relationship between the authenticated user and the target user to determine visibility. Whe…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-fq2p-5p22-8g6j</guid>
    </item>
  </channel>
</rss>
