Skip to main content
← Vulnerabilities

Gitea public-only package token access to private OCI blobs

Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.

Published
Last modified
Published
Not listed in CISA KEV
8/100 · provisional
Specific setups only
Fix
Fixed in 28.3.0
None on Exploit-DB, Metasploit or GitHub

Summary

Gitea's OCI container registry is affected. A token restricted to public-only access but with package write permission can copy a blob from a private package into a public one, letting anyone download private content such as container image layers.

Read the original description

The OCI registry's cross-repository blob mount checked the target package against the token's `public-only` restriction, but checked the source blob only against the full account permissions of the token owner. A `public-only` token with `write:package` scope, whose owner can read a private package and write to a public package namespace, could mount a blob of the private package into the public package. The private blob, such as a container layer, could then be downloaded by anyone through the public package.

What to do

  • Check whether your setup matches what the bug needs.

    Token must be public-only with write:package scope Token owner can normally read a private source package and write to a public target package namespace
  • Upgrade to a fixed version: 28.3.0.

Timeline

  1. CVE published
  2. First seen by cve.now

Affected versions

  • gitea.dev

    fixed in 28.3.0

Evidence 5

  1. Advisory
  2. Patch
  3. Patch
  4. Repository
  5. Link

Corrections

None so far.

Something wrong on this page? Report an error. Every fix is listed here.

FAQ

Questions about CVE-2026-117685

What does this mean?

A token limited to public access with write:package scope can mount a private OCI blob into a public package it can write to. Once mounted, the private blob bytes, such as container layers, can be downloaded through the public package URL.Source: github.com, blog.gitea.com

Am I affected, and how do I check?

Gitea versions before 28.3.0 are affected. The bug needs a public-only token with write:package scope, whose owner can normally read a private source package and write to a public target package namespace. To check, run gitea --version on the server and compare it with 28.3.0, and review the scopes on the token in its settings page.Source: github.com, blog.gitea.com

What should I do about it?

Upgrade Gitea to 28.3.0 or later, which contains the fix.Source: github.com, blog.gitea.com

Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data