Skip to main content

Gitea CVE-2026-73539

| EUVDEUVD-2026-101105 HIGH
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
N/A vendor:alpine
7.5
CVSS 3.1 · Vendor: vendor:alpine
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privilege Gitea user
  2. Delivery
    Submit crafted markup content/ref value
  3. Exploit
    Trigger external renderer invocation
  4. Execution
    Inject extra command arguments (CWE-88)
  5. Impact
    Alter rendering command behavior to impact confidentiality/integrity/availability

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
Exploitation Conditions

Exploitation requires that the Gitea instance has one or more external markup renderers explicitly configured (via the [markup.<renderer>] sections in app.ini), which is NOT enabled by default - this is the primary limiting factor and sharply narrows the exposed population. An attacker also needs a low-privilege authenticated account (PR:L) able to submit markup content or influence a repository ref/branch name that flows into the external renderer command, and must craft input that survives the pre-fix string substitution to inject extra arguments (reflected in AC:H). Instances using only Gitea's built-in Markdown/markup rendering, with no configured external renderers, are not affected.

Impact

Signals point to a moderate, conditional risk rather than a widespread emergency. The CVSS 3.1 base score of 7.5 reflects full C:H/I:H/A:H impact, but the vector itself tempers this with AC:H (high attack complexity) and PR:L (authenticated low-privilege attacker), meaning exploitation is neither trivial nor fully anonymous. EPSS is low at 0.26% (16th percentile), consistent with the absence of a public exploit and no CISA KEV listing - exploitation status is 'no public exploit identified at time of analysis.' The source diff confirms this is an argument-injection flaw (CWE-88) in Gitea's external markup renderer, where command variables were substituted into the full command string before shell tokenization; this only matters on instances that have external renderers configured, which is NOT the default. Note a signal conflict: the input Tags label this 'Information Disclosure,' but CWE-88 and the code evidence describe command argument injection with full CIA impact, so the 'Information Disclosure' framing understates the issue - treat the CWE-88/code evidence as authoritative over the tag. Also note a minor version discrepancy: Gitea's own release notes fix this in 1.27.2, while the Alpine advisory cites 1.27.3-r0 (package revisioning), so verify the exact fixed package for your distro.

Exploit ScenarioDerived

On a Gitea instance configured with external markup renderers (a non-default [markup.*] setting), an authenticated low-privilege user supplies crafted repository content or a ref/branch value that is interpolated into the external renderer's command line, injecting additional arguments (CWE-88) that alter how the external program executes. The high attack complexity (AC:H) reflects the need for a specific renderer configuration and a carefully crafted payload. No public exploit code was identified at the time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Oct 18, 2026

Argument injection in Gitea's configurable external markup renderer lets a low-privilege authenticated user smuggle extra command-line arguments into the renderer process by way of attacker-influenced values (such as repository ref or branch names) that were substituted into the configured renderer command string before it was parsed, potentially yielding code execution and access to repository content at the renderer's privilege level. Only instances that have explicitly configured one or more external renderers in app.ini are exposed, and exploitation further depends on crafting input that survives the pre-fix string substitution, which is why the vendor-derived vector carries AC:H despite the high confidentiality and integrity impact. Fixed upstream in Gitea 1.27.2 and packaged for Alpine Linux as gitea 1.27.3-r0; no public exploit code has been identified at time of analysis and EPSS is low (0.26%, 16th percentile), so this is a conditional, patch-now issue rather than a mass-exploitation emergency.

Earlier versions of this analysis (1)
v1 Sep 06, 2026 - 06:39

Gitea, the self-hosted Git service, received a security fix packaged in Alpine Linux as version 1.27.3-r0. The underlying vulnerability type, root cause, and attacker-accessible impact are not described in the available intelligence - only that a fix was shipped in this Alpine package revision. Security teams running Gitea on Alpine Linux should treat this as an uncharacterized security update requiring upgrade.

RemediationAI

Vendor-released patch: upgrade to Gitea 1.27.2 or later upstream, or on Alpine Linux to the gitea 1.27.3-r0 package (apk upgrade gitea), which backports the external-renderer fix; verify the running version after upgrade and restart the service. If immediate upgrade is not possible, the most effective compensating control is to remove or comment out every [markup.<renderer>] section in app.ini and restart Gitea - with no external renderer command configured the vulnerable code path is never reached, and the trade-off is that the affected formats (for example AsciiDoc or reStructuredText) will no longer render and will be shown as plain text or raw content to users. Additionally, because the injected values arrive through repository ref, branch, and markup content that a low-privilege authenticated account can influence (PR:L), tighten who may create repositories and push branches until patched (restrict repository creation to trusted teams or disable it instance-wide), accepting the loss of self-service repo creation for untrusted users. Review app.ini for renderer commands that embed placeholders in unquoted positions and use the fully quoted form shown in the upstream advisory GHSA-579w-82gf-89m2 once patched, and audit logs for unexpected renderer invocations or new branches with unusual names containing whitespace or quote characters. No vendor-released patch has been identified for pre-1.27.2 branches beyond the 1.27.2 fix, so deployments on older minor lines should plan a jump to a supported release rather than wait for a backport.

Affected VersionsENISA

Gitea 0 ≤1.27.1

Affected Packages

euvd gitea no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Gitea supports optional external markup renderers declared in app.ini under [markup.<name>] sections, where an administrator supplies a Command template containing the placeholders $GITEA_PREFIX_SRC and $GITEA_PREFIX_RAW (previously also Windows-style %VAR% forms) plus a temporary input file path. Before the fix, modules/markup/external/external.go performed strings.NewReplacer substitution of these variables directly into the raw command string and only afterwards called shellquote.Split on the result. Any substituted value that contained whitespace, quotes, or shell metacharacters therefore altered how the command line was tokenized, letting an attacker append or reshape arguments passed to the renderer binary. This is CWE-88 (Improper Neutralization of Argument Delimiters in a Command), i.e. argument injection rather than classic CWE-78 shell metacharacter injection, because the fix is about delimiter handling rather than escaping a shell. The upstream patch (PR #38885, with follow-up #38898) inverts the order of operations: prepareExternalCommand() first splits the administrator's Command with shellquote.Split, determines program and argument vector, and only then performs variable replacement per-argument, so an injected value can no longer create new arguments. The same patch set hardens the data that flows into those placeholders, adding util.PathEscapeSegments on the ref path in routers/common/markup.go and replacing hand-built path.Join("branch", ...) URLs with git.RefNameFromBranch(...).RefWebLinkPath() in the organization and user profile readme handlers, so branch and ref names cannot carry unexpected delimiters into the renderer invocation or the generated links. The attack surface exists only where a renderer binary is configured; Gitea's built-in Markdown pipeline never spawns a process and is unaffected.

Know when Gitea gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (vendor:alpine) PRIMARY 7.5 HIGH
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.5 HIGH

AC:H because exploitation depends on a non-default external-renderer configuration plus a crafted injection payload, and PR:L because an authenticated low-privilege user must supply the rendered content.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (vendor:alpine).

CVSS VectorVendor: vendor:alpine

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Analysis Updated
Oct 18, 2026 - 14:31 vuln.today
v2 - CVSS changed
CVSS changed
Oct 18, 2026 - 14:22 NVD
7.5 (HIGH)

DescriptionCVE.org

Alpine Linux: gitea fixed in 1.27.3-r0

Executive ViewAI

Why It Matters

Gitea's optional external markup rendering feature contains an argument-injection flaw (CVE-2026-73539) that could let a user with a repository account execute commands at the renderer's privilege level and reach source code beyond their intended access. Only self-hosted instances that explicitly configure one or more external renderers in app.ini are exposed, so leadership attention should center on identifying those specific deployments and confirming their upgrade path rather than on broad enterprise exposure. Where affected, the confidentiality and integrity of hosted repositories are at risk, but the configuration prerequisite and the difficulty of crafting input that survives string substitution keep overall likelihood low.

Business Impact: Medium
Compensating Controls

Apply vendor patch. Until upgraded, disable external markup renderers in app.ini (the prerequisite for exposure), limit branch and ref naming rights to trusted users, and run any renderer process under a low-privilege service account without access to secrets or repository storage.

Threat Intelligence Overview

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Medium
popular self-hosted open-source git service, common but not universally deployed
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Gitea

View all
CVE-2026-60004 CRITICAL POC
9.8

Remote code execution in Gitea (self-hosted Git service) via a code-injection flaw (CWE-94) allows attackers to run arbi

CVE-2026-27771 HIGH POC
8.2 Jul 03

Broken access control in Gitea's Composer package registry (versions up to and including 1.26.1) lets remote attackers r

CVE-2022-30781 HIGH POC
7.5 May 16

Gitea before 1.16.7 does not escape git fetch remote. Rated high severity (CVSS 7.5), this vulnerability is remotely exp

CVE-2020-14144 HIGH POC
7.2 Oct 16

The git hook feature in Gitea 1.1.0 through 1.12.5 might allow for authenticated remote code execution in customer envir

CVE-2024-6886 CRITICAL POC
10.0 Aug 06

Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Gitea Gitea

CVE-2026-72867 CRITICAL POC
9.9 Aug 10

Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us

CVE-2026-20896 CRITICAL POC
9.8 Jul 03

Reverse-proxy authentication bypass in the official Gitea Docker image (versions up to and including 1.26.2) allows any

CVE-2026-59774 CRITICAL POC
9.8

Path traversal in Gitea's Org-mode (`.org`) markup renderer allows an attacker who can get Org-mode content rendered by

CVE-2026-58053 CRITICAL POC
9.4 Jun 28

Container escape in Gitea act_runner (Docker backend, through act 0.262.0) lets an authenticated user with workflow-exec

CVE-2019-11229 HIGH POC
8.8 Apr 15

models/repo_mirror.go in Gitea before 1.7.6 and 1.8.x before 1.8-RC3 mishandles mirror repo URL settings, leading to rem

CVE-2026-57894 HIGH POC
8.5 Jul 21

Server-side request forgery and internal repository exfiltration in Gitea before 1.27.0 lets a low-privileged authentica

CVE-2026-24791 HIGH POC
8.1 Jun 17

Authorization bypass in Gitea versions 1.22.3 through 1.26.1 allows holders of `public-only` access tokens or OAuth gran

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy