<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-30T06:59:21.951699+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/cve-2026-56654</id>
    <title>CVE-2026-56654 — Privilege Escalation via Access Token Scope Escalation in API</title>
    <updated>2026-10-30T06:59:21.952954+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Gitea Open Source Git Server</p>
<p>Privilege Escalation via Access Token Scope Escalation in API</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/cve-2026-56654"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-683j-3ff6-hh2x</id>
    <title>GHSA-683j-3ff6-hh2x — Gitea: Privilege Escalation via Access Token Scope Escalation in API</title>
    <updated>2026-10-30T06:59:21.953018+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: code.gitea.io/gitea</p>
<p>Gitea's API endpoint for creating Personal Access Tokens (`POST /users/{username}/tokens`) is protected by a middleware (`reqBasicOrRevProxyAuth`) that is intended to require password-based authentication, preventing a compromised token from being used to mint new ones. However, when a token is passed in the `Authorization: Basic &lt;token&gt;:x-oauth-basic` format, the Basic auth handler validates it and sets `AuthedMethod="basic"`, causing `IsBasicAuth=true` and fooling the middleware into passing the request. Once past the guard, the token creation handler applies no scope ceiling — it will create a new token with any requested scope regardless of the caller's scope. An attacker with a restricted token (e.g. `write:user` from a leaked CI secret) can therefore create a fully-privileged `all`-scoped token without knowing the account password.</p>
<p>### Data flow</p>
<p>#### Step 1 - Token extracted from Basic auth header
  
When the attacker sends Authorization: Basic base64(&lt;token&gt;:x-oauth-basic), parseAuthBasic detects that the password is "x-oauth-basic" and treats the username field as the token:</p>
<p>https://github.com/go-gitea/gitea/blob/9155a81b9daf1d46b2380aa91271e623ac947c1e/services/auth/basic.go#L55-L64</p>
<p>`VerifyAuthToken` then validates the token against the database and sets `LoginMethod = "access_token"` and `ApiTokenScope` to the token's actual scope (`write:user`):</p>
<p>https://github.com/go-gitea/gitea/blob/9155a81b9daf1d46b2380aa91271e623ac947c1e/services/auth/basic.go#L100-L106</p>
<p>#…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-683j-3ff6-hh2x"/>
  </entry>
</feed>
