{"id":"CVE-2026-103667","aliases":["BIT-gitea-2026-103667","EUVD-2026-93910","GHSA-7cq7-4v93-8wjm"],"status":"published","title":"Gitea container registry stored XSS through blob media type","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.","severity":{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-12","score":0.0019,"percentile":0.08766,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2026-10-06T19:23:34Z","modified":"2026-10-28T02:30:34Z","fixes":[{"ecosystem":"Bitnami","package":"gitea","fixed_in":["28.0.0"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Bitnami","package":"gitea","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"28.0.0"}]}]}],"products":[{"vendor":"gitea","product":"gitea"}],"references":[{"url":"https://github.com/go-gitea/gitea/security/advisories/GHSA-7cq7-4v93-8wjm","tags":["vendor-advisory","Mitigation","Vendor Advisory","advisory"]},{"url":"https://github.com/go-gitea/gitea/pull/39398","tags":["patch","Patch","Issue Tracking","fix"]},{"url":"https://blog.gitea.com/release-of-28.0.0/","tags":["release-notes","Release Notes","article","advisory"]},{"url":"https://github.com/go-gitea/gitea/releases/tag/v28.0.0","tags":["release-notes","Release Notes","article","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-103667","tags":["web","advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/103xxx/CVE-2026-103667.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-103667","title":"Gitea container registry stored XSS through blob media type","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.","status":"published","published":"2026-10-06T19:23:34.873Z","modified":"2026-10-07T20:17:12.875Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"adp"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T13:34:37.420074Z"}],"euvd":[{"id":"EUVD-2026-93910","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.","status":"published","published":"2026-10-06T19:23:34Z","modified":"2026-10-07T20:17:12Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T17:27:33.904651Z"}],"nvd":[{"id":"CVE-2026-103667","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.","status":"published","published":"2026-10-06T20:17:14.607Z","modified":"2026-10-15T02:25:29.217Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:12:54.809359Z"}],"osv":[{"id":"CVE-2026-103667","title":"Gitea container registry stored XSS through blob media type","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.","status":"published","published":"2026-10-06T19:23:34.873Z","modified":"2026-10-28T02:30:34.986435812Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:44:54.236592Z"},{"id":"BIT-gitea-2026-103667","title":"Gitea container registry stored XSS through blob media type","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.","status":"published","published":"2026-10-16T08:36:30.182Z","modified":"2026-10-16T09:56:02.327567064Z","updated_at":"2026-11-02T15:28:29.999658Z"}]}}
