{"id":"CVE-2026-96594","state":"PUBLISHED","title":"Gitea repository media API stored XSS","description":"The Gitea API endpoint `GET /api/v1/repos/{owner}/{repo}/media/{filepath}` wrote files of up to 1 KiB that are stored directly in Git, not in LFS, to the response without the content type and disposition headers Gitea uses for user content. An HTML file committed to a repository was therefore rendered by the browser on the Gitea origin. A user who can push to a repository could run JavaScript in the session of a victim who opens the media URL and act with the victim's permissions.","publishedAt":"2026-10-06T21:36:38.491Z","updatedAt":"2026-10-07T15:04:26.695Z","severity":{"score":6.1,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","source":"CISA-ADP"},"assigner":"Gitea","products":["Gitea Gitea"],"affected":[{"vendor":"Gitea","product":"Gitea","packageName":"gitea.dev","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"28.0.0","versionType":"semver"}]}],"references":["https://github.com/go-gitea/gitea/security/advisories/GHSA-94rx-fqm6-q23v","https://github.com/go-gitea/gitea/pull/39501","https://github.com/go-gitea/gitea/pull/39507","https://blog.gitea.com/release-of-28.1.0/","https://github.com/go-gitea/gitea/releases/tag/v28.1.0"],"weaknesses":["CWE-79"],"ingestedAt":"2026-10-29T20:13:43.249Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/96xxx/CVE-2026-96594.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-96594","state":"PUBLISHED","datePublished":"2026-10-06T21:36:38.491Z","dateUpdated":"2026-10-07T15:04:26.695Z","assignerShortName":"Gitea","assignerOrgId":"88ee5874-cf24-4952-aea0-31affedb7ff2","dateReserved":"2026-10-04T22:02:04.871Z"},"containers":{"cna":{"title":"Gitea repository media API stored XSS","descriptions":[{"lang":"en","value":"The Gitea API endpoint `GET /api/v1/repos/{owner}/{repo}/media/{filepath}` wrote files of up to 1 KiB that are stored directly in Git, not in LFS, to the response without the content type and disposition headers Gitea uses for user content. An HTML file committed to a repository was therefore rendered by the browser on the Gitea origin. A user who can push to a repository could run JavaScript in the session of a victim who opens the media URL and act with the victim's permissions."}],"affected":[{"vendor":"Gitea","product":"Gitea","packageName":"gitea.dev","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"28.0.0","versionType":"semver"}]}],"references":[{"url":"https://github.com/go-gitea/gitea/security/advisories/GHSA-94rx-fqm6-q23v","name":"GitHub Security Advisory GHSA-94rx-fqm6-q23v","tags":["vendor-advisory"]},{"url":"https://github.com/go-gitea/gitea/pull/39501","name":"Fix: go-gitea/gitea pull request #39501","tags":["patch"]},{"url":"https://github.com/go-gitea/gitea/pull/39507","name":"Fix backport to release/v28: go-gitea/gitea pull request #39507","tags":["patch"]},{"url":"https://blog.gitea.com/release-of-28.1.0/","name":"Gitea 28.1.0 release announcement","tags":["release-notes"]},{"url":"https://github.com/go-gitea/gitea/releases/tag/v28.1.0","name":"go-gitea/gitea v28.1.0 release","tags":["release-notes"]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","lang":"en","type":"CWE","description":"CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"}]}],"providerMetadata":{"shortName":"Gitea","orgId":"88ee5874-cf24-4952-aea0-31affedb7ff2","dateUpdated":"2026-10-06T21:36:38.491Z"},"credits":[{"lang":"en","value":"https://github.com/KadirArslan","type":"reporter"},{"lang":"en","value":"https://github.com/cruzzer","type":"reporter"},{"lang":"en","value":"https://github.com/silverwind","type":"remediation developer"},{"lang":"en","value":"https://github.com/bircni","type":"remediation developer"}]},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"CHANGED","version":"3.1","baseScore":6.1,"attackVector":"NETWORK","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","integrityImpact":"LOW","userInteraction":"REQUIRED","attackComplexity":"LOW","availabilityImpact":"NONE","privilegesRequired":"NONE","confidentialityImpact":"LOW"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-10-07T15:04:06.630412Z","id":"CVE-2026-96594","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-07T15:04:26.695Z"}}]}}}