CVE-2026-113429 PUBLISHED

Gitea stored XSS through legacy Actions artifact Content-Encoding

Assigner: Gitea
Reserved: 01.11.2026 Published: 01.11.2026 Updated: 01.11.2026

Legacy (v1 to v3) Actions artifact uploads stored the request's Content-Encoding header unchecked in the column that is served as the artifact's Content-Type on download, and a value starting with video/ or audio/ also removed the sandboxing Content-Security-Policy. A user who can run an Actions job could upload an artifact that a browser renders as HTML on the Gitea origin when the direct artifact download URL is opened, and the URL is reachable anonymously on public repositories. A victim who opens the link runs the attacker's script with their own session, which for an administrator means control of the instance. Legacy uploads now store only the gzip marker, and the special serve headers are chosen only for valid media types.

Product Status

Vendor Gitea
Product Gitea
Versions Default: unaffected
  • affected from 0 to 28.3.0 (excl.)

Credits

  • https://github.com/yagcioglutoprak reporter
  • https://github.com/basavaraj-sm05 remediation developer

References

Problem Types

  • CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') CWE