Skip to main content

Tugtainer CVE-2025-69201

HIGH
Command Injection (CWE-77)
2025-12-29 security-advisories@github.com
8.1
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Reach tugtainer-agent command endpoint
  2. Delivery
    Craft POST api/command/run with injected arguments
  3. Exploit
    Unvalidated schema passes args to docker command
  4. Execution
    Agent executes attacker-controlled operation
  5. Impact
    Compromise container host and managed containers

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Command injection prevention
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires network access to the tugtainer-agent's POST api/command/run endpoint on a Tugtainer instance running a version prior to 1.15.1, where the command schema performed no validation of arguments before dispatching them. The concrete prerequisite is reachability of that specific agent API endpoint; the injection point is the command argument list accepted by command_schemas.py. Limiting factors: the attack surface is confined to deployments that expose the agent endpoint to the attacker (homelab/self-hosted installs may keep agents on private/internal networks, sharply reducing real exposure), and while the supplied vector rates PR:N, the description does not confirm whether the endpoint enforces authentication/tokens - if it does, an attacker would also need valid credentials. No user interaction is required and no special non-default feature toggle is implicated.

Impact

This is a genuine high-impact vulnerability in principle - CWE-77 command argument injection in Tugtainer's agent endpoint (POST api/command/run) that, per the vendor-supplied CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N), is remotely reachable, low-complexity, and requires no privileges or user interaction, yielding high confidentiality, integrity, and availability impact (VC:H/VI:H/VA:H). The source-code evidence confirms the root cause: before 1.15.1 the command schema accepted arbitrary list arguments with no validator, and the fix introduces an allowlist-based command_validator restricting commands, flags, and positional args. However, real-world urgency is tempered by several signals: the CVSS 4.0 exploit-maturity metric is E:U (Unproven), there is no CISA KEV listing and no public POC, and the affected product is a niche self-hosted container-automation tool with a small deployment footprint. So this is a 'high CVSS, low aggregate real-world risk' case driven by low prevalence and no evidence of exploitation - real priority for the few operators running exposed Tugtainer agents, low priority at fleet scale. One caveat to verify: the vector asserts PR:N (unauthenticated), but the description does not state whether the tugtainer-agent command endpoint enforces authentication; if the agent is normally protected by a token or private network, effective exploitability is narrower than the vector implies - verify endpoint auth with the vendor/advisory.

Exploit ScenarioDerived

An attacker with network reach to a Tugtainer agent (version <1.15.1) sends a crafted POST to api/command/run containing extra/arbitrary arguments that the unvalidated command schema passes through to the underlying docker invocation, altering command behavior to run attacker-chosen operations on the container host. Because the CVSS vector is AV:N/AC:L/PR:N/UI:N, no authentication or user interaction is modeled as required, though exploitation depends on the agent endpoint being network-reachable. No public exploit code is identified (exploit maturity E:U), so an attacker would need to develop the request against the known injection point.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 05, 2026

Command argument injection in the Tugtainer agent API (POST api/command/run) lets remote attackers append or substitute arbitrary arguments to commands the agent dispatches, potentially achieving command execution or otherwise manipulating Docker on the host. All Tugtainer deployments running versions prior to 1.15.1 are affected, including the Docker-packaged builds identified by the affected CPE; the vendor's CVSS 4.0 vector (8.1, AV:N/AC:L/AT:N/PR:N/UI:N, VC:H/VI:H/VA:H) rates it as remotely reachable, low-complexity, and unauthenticated, though the advisory does not confirm whether the agent endpoint enforces a token, so an additional credential requirement cannot be ruled out in hardened setups. No public exploit code and no confirmed active exploitation were identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to Tugtainer 1.15.1, which adds strict allowlist validation of command flags and positional arguments in the agent's command schema; see the security advisory at https://github.com/Quenary/tugtainer/security/advisories/GHSA-grc3-8w5x-g54q, the release at https://github.com/Quenary/tugtainer/releases/tag/v1.15.1, and the fix commit https://github.com/Quenary/tugtainer/commit/dbb17d843e30fd7509acf0328c913dcb42f40831 (PR https://github.com/Quenary/tugtainer/pull/88). If immediate upgrade is not possible, the most effective compensating control is to remove network exposure of the agent: do not publish the agent port to the internet, bind it to localhost or an internal-only Docker network, and restrict reachability to trusted management hosts via firewall/security-group rules - the trade-off is that remote or multi-host Tugtainer management then requires a VPN, overlay network, or SSH tunnel. Where an agent must be reachable across a network, enforce authentication (a shared token/agent API key) and TLS at a reverse proxy in front of POST api/command/run, accepting the added configuration complexity and the risk that any authenticated user with endpoint access can still submit the commands the pre-1.15.1 schema permits. Note that no dedicated per-endpoint disable switch predates 1.15.1, so network isolation plus upgrading remain the practical options; there is no evidence that merely changing default credentials mitigates the argument-injection path itself.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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

Technical ContextAI · show details

The flaw is a CWE-77 command injection (specifically argument injection) rooted in the agent-side command schema. Tugtainer's agent accepts a command as a list of strings on POST api/command/run and previously passed that list straight through to the underlying Docker/exec layer with no allowlist or argument validation in shared/schemas/command_schemas.py. Because only the presence of a command schema was checked and not its individual tokens, an attacker who could reach the endpoint could slip in extra flags or positional arguments - for example injecting additional flags into a 'docker network connect' invocation - to alter how the agent executes the command. The fix (commit dbb17d8, PR #88) introduces shared/schemas/command_validator.py, which defines per-command schemas (COMMAND_SCHEMAS keyed on command prefixes such as ('network','connect')), validates flags against a fixed set of known flags with type-specific validators, and enforces strict regex/length checks on positional values: DOCKER_NAME_RE (^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$) for container/network identifiers, ALIAS_RE (^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,62}$) for --alias, and ipaddress.ip_address for --ip/--ip6, rejecting unknown flags and enforcing exact positional-argument counts. That validator is wired in via a Pydantic @field_validator('command') on the command model, so malformed argument lists are rejected before dispatch.

Know when Tugtainer 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 (github) PRIMARY 8.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U
vuln.today AI 9.8 CRITICAL

Command argument injection over a network API with no modeled auth or interaction yields AV:N/AC:L/PR:N/UI:N and full C/I/A impact; PR:N follows the supplied vector though endpoint auth is unverified.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Tugtainer is a self-hosted app for automating updates of docker containers. In versions prior to 1.15.1, arbitary arguments can be injected in tugtainer-agent POST api/command/run. Version 1.15.1 fixes the issue.

Executive ViewAI

Why It Matters

Tugtainer deployments prior to version 1.15.1 face a high-severity command argument injection in the agent API that can allow remote manipulation of Docker commands on affected hosts. The vendor rates this as unauthenticated and network-reachable under CVSS 4.0 (PR:N), although token enforcement is unconfirmed and hardened configurations may require credentials. No public exploit code or confirmed active exploitation was identified at time of analysis, but because a patch is available, leadership should prioritize prompt remediation to prevent potential host or container compromise.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Rare
obscure self-hosted hobby/homelab container tool, tiny production footprint
Data Quality
4 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.5%
Patch available Yes
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
Yes
Human Impact
High

Priority Score

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

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

Affected Products (CPE)CVE.org

cpe:2.3:a:quenary:tugtainer:*:*:*:*:*:docker:*:*

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