Read the docs
TI-2026-83592 Aliases CVE-2026-113429

Stored cross-site scripting in Gitea Actions artifact downloads

Priority LOW 22CWE-79Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
Cross-site scripting
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from CNA. Impact type from CWE-79.

Summary

Gitea before 28.3.0 has stored cross-site scripting (CWE-79) in legacy Actions artifact uploads, which store the request's Content-Encoding header unchecked as the download Content-Type. A user who can run an Actions job can upload an artifact that a browser renders as HTML on the Gitea origin, and a victim who opens its direct download URL runs the script with their own session, which gives an administrator control of the instance.

Written with Claude Haiku 5.5 from the sources below · 2026-11-05

Description from the CNA

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.

Why it matters now

EPSS 0.00171 6th percentileScored 2026-11-07
Fix Fixed Gitea (Gitea): 28.3.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
GiteaGiteabefore 28.3.028.3.0Patch availableCNA
  • Gitea VendorGitea Affected before 28.3.0 Fixed in 28.3.0 Patch available CNA

CPE names Threatist (inferred) · 1

Inferred from how NVD named this product before; not given by a source.

CPEVersionsRoleVendor
cpe:2.3:a:gitea:gitea:*:*:*:*:*:*:*:*——Gitea
  • cpe:2.3:a:gitea:gitea:*:*:*:*:*:*:*:* Versions — — ·Gitea

Remediation

Upgrade Gitea to version 28.3.0 or later, which contains the fix.

Written with Claude Haiku 5.5 from the sources below · 2026-11-05

  • Fix · CNA Gitea (Gitea) Fixed in 28.3.0

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    Gitea 28.3.0

    20 records Highest priority Priority MEDIUM 3 MEDIUM, 17 LOW

    Other records, highest priority first

    • TI-2026-83610 Gitea OAuth2 auto-linking lets attackers take over accountsPriority MEDIUM 49
    • TI-2026-83601 Gitea public-only token can expose private OCI blobs through package mountsPriority MEDIUM 47
    • TI-2026-83594 Gitea public-only token bypass exposes private repository jobsPriority MEDIUM 47

Timeline

  1. 2026-11-01 Threatist record created from CVE-2026-113429

References

  • TI-2026-42785 Gitea before 1.27.1 allows remote code execution via the diffpatch API through Git hook installation. KEVCVSS 3.1CRITICAL 9.8
  • TI-2026-42033 Improper authorization on OAuth sign-in callback silently re-enables administrator-disabled accounts CVSS 3.1CRITICAL 9.8
  • TI-2026-40842 Privilege Escalation via Access Token Scope Escalation in API CVSS 3.1CRITICAL 9.8
  • TI-2026-16922 Gitea Docker image trusts spoofable reverse-proxy headers by default CVSS 3.1CRITICAL 9.8
  • TI-2026-42043 Team-repository linking endpoint bypasses the RepoAdminChangeTeamAccess organization setting CVSS 3.1CRITICAL 9.1
  • TI-2026-40381 OIDC userinfo Endpoint Returns Identity Claims Without Enforcing API Token Scopes CVSS 3.1CRITICAL 9.1
See all 240 →

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences