CVE-2026-103667 Gitea container registry stored XSS through blob media type

Medium 5.4 Published Updated

Authenticated users can execute arbitrary JavaScript on the Gitea origin via malicious container blobs, potentially leading to account takeover.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2026-103667?

CVE-2026-103667 is a medium-severity cross-site scripting vulnerability in Gitea Gitea, published on 6 Oct 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.

Official description

Gitea's container registry served blob downloads with a `Content-Type` taken from the media type declared in pushed image manifests, without a `Content-Disposition` or restrictive content security policy. A user who can push container images can publish a blob containing HTML and JavaScript with a `text/html` media type. When a victim who is authenticated to the instance opens the blob URL in a browser, the script runs on the Gitea origin and can perform actions as the victim, such as creating API tokens.

Weakness: CWE-79

Which versions are affected by CVE-2026-103667?

1 open source package ship an affected version, including gitea. It affects 1 product.

PackageAffectedFixed in
gitea BitnamiAll versions28.0.0

Products include Gitea Gitea.

How do I fix CVE-2026-103667?

Upgrade gitea to 28.0.0 or later.

Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.

Is CVE-2026-103667 being exploited?

There is no known exploitation of CVE-2026-103667 in the wild and no public exploit code.

All Gitea Gitea vulnerabilities

Sources

Also known as BIT-gitea-2026-103667, GHSA-7cq7-4v93-8wjm, MINI-238q-56wg-x5jq, MINI-959g-mhh7-6945.

Is CVE-2026-103667 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free