Gitea Actions Artifact Upload Stored Cross-Site Scripting (XSS) and CSP Bypass Vulnerability (CVE-2026-113429)
Executive & SecOps Summary
SECOPS ASSESSMENTGitea instances running versions prior to v28.3.0 with Gitea Actions enabled
Attackers with Actions execution privileges can upload malicious HTML artifacts to execute arbitrary scripts in the victim's browser session, potentially leading to full instance takeover if an administrator triggers the payload
Immediately upgrade Gitea to version v28.3.0 or later
Affected Products & Version Scope
Remediation & Live Workaround Commands
PATCH & WORKAROUND1. Official Patch & Version Upgrade Commands
Upgrade your Gitea instance to version v28.3.0 or later to resolve the vulnerability.
For Docker-based deployments:
# Update Gitea image version in docker-compose.yml and restart
sed -i 's/gitea\/gitea:.*/gitea\/gitea:28.3.0/g' docker-compose.yml
docker compose pull
docker compose up -d2. Temporary Workaround & Hardening Configuration
If an immediate upgrade is not feasible, enforce a strict CSP header at the reverse proxy level for artifact download paths.
Nginx configuration workaround:
# Force sandboxing CSP on Gitea Actions run artifact paths
location ~* ^/([^/]+)/([^/]+)/actions/runs/.*$ {
proxy_pass http://localhost:3000;
add_header Content-Security-Policy "default-src 'none'; sandbox;" always;
}3. Log Audit & IoC Verification Commands
Query the Gitea database to identify potentially malicious artifacts stored with manipulated content types.
# PostgreSQL query to detect suspicious artifact content types
psql -U gitea -d giteadb -c "SELECT id, name, content_type FROM action_artifact WHERE content_type LIKE 'video/%' OR content_type LIKE 'audio/%';"Block Exploits Instantly with Managed Virtual Patching Rules
Can't patch production immediately? Deploy managed WAF rules at the edge to intercept RCE, SQLi, and deserialization payloads before they hit your origin server.
Technical Root Cause & Exploitation Mechanics
1. Vulnerability Overview & Root Cause
This vulnerability exists in Gitea's legacy (v1 to v3) Actions artifact upload handling mechanism. When an artifact is uploaded, the server stores the request's Content-Encoding header unchecked in the database column that is subsequently served as the artifact's Content-Type during download. Furthermore, if the stored value starts with video/ or audio/, Gitea's security logic mistakenly removes the sandboxing Content-Security-Policy (CSP) header.
2. Exploitation Mechanics & Attack Scenario
An attacker with permissions to run Actions jobs can craft a workflow that uploads a malicious HTML file as an artifact. By manipulating the upload request to include a Content-Encoding header starting with video/ (e.g., video/mp4), the attacker bypasses the CSP protection. When a victim accesses the direct download URL of the artifact—which is accessible anonymously on public repositories—the browser renders the file as HTML without sandboxing, executing the attacker's script within the Gitea origin context.
3. Infrastructure & Business Impact
Since the script runs under the Gitea origin, it can access the victim's active session cookies and API tokens. If an administrator opens the malicious link, the attacker can hijack the administrator's session, leading to complete compromise of the Gitea instance, unauthorized source code access, and potential supply chain contamination.
Official Vendor Advisories & References
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.
Frequently Asked SecOps Questions (CVE-2026-113429)
FAQQ1. How critical is CVE-2026-113429 and is it actively exploited in the wild?
CVE-2026-113429 is rated CVSS 5.4 (MEDIUM) with a 30-day EPSS exploitation probability of 0.2%. Organizations running affected versions should prioritize patching based on network exposure.
Q2. Which vendors and products are affected by CVE-2026-113429?
Primary impacted vendors include gitea across gitea. Scope summary: All Gitea versions prior to v28.3.0 with Gitea Actions enabled
Q3. What temporary mitigations or workarounds exist for CVE-2026-113429 before patching?
[Mitigation] Immediately upgrade Gitea to version v28.3.0 or later Follow the CLI remediation commands and interactive SecOps checklist on this page to restrict exposure prior to your maintenance window.
Generate an Internal Engineering Notice or CISO Report for CVE-2026-113429
Instantly format this advisory into an executive CISO summary or engineering patch ticket.
🔗 Related Advisories in Similar Stack (gitea)
View Category →Gitea Remote Code Execution Vulnerability via diffpatch API and Git Hooks (CVE-2026-60004)
[Affected Scope] Gitea versions prior to 1.27.1
Gitea API Heatmap Endpoint Information Disclosure Vulnerability (CVE-2026-114199)
[Affected Scope] Gitea versions prior to v28.3.0
Gitea Actions Task Token Authorization Bypass Leading to Private Repository Metadata Disclosure (CVE-2026-112887)
[Affected Scope] Gitea instances running versions prior to v28.3.0 with Gitea Actions enabled
Microsoft Exchange Server Cross-Site Scripting (XSS) and Spoofing Vulnerability Advisory (CVE-2026-42897)
[Affected Scope] All supported on-premises Microsoft Exchange Server environments.
Subscribe to Daily Vulnerability Briefings & KEV Alerts
Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.