/

CVE-2026-79766

Severity:

CRITICAL RISK

(9.1)

OS Command Injection (CWE-78) in Termix ACME SSL Routes

CVE-2026-79766

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-78

Impact:

Arbitrary Code Execution

Severity:

CRITICAL RISK

(9.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A critical OS command injection vulnerability in Termix allows an authenticated administrator to place attacker-controlled domain or email values into an ACME certificate request. When these values are interpolated into a shell command, shell metacharacters may execute arbitrary operating-system commands with the privileges of the Termix backend process.

Affected context

The vulnerability occurs in Termix ACME SSL certificate request handling when administrator-controlled domain or email settings are later included in a certbot command. Both HTTP webroot and DNS Cloudflare challenge workflows may be affected when values are passed through shell execution without robust argument separation or trusted-value enforcement.

Exploit preconditions

  • Attack surface: Authenticated web API endpoints for ACME SSL settings and certificate requests
  • Required access: Termix administrator privileges sufficient to modify ACME SSL settings
  • Trigger point: Certificate issuance through the ACME SSL request workflow
  • Why exploitation is possible: User-controlled values are interpolated into a /bin/sh -c command and protected only by double quotes, which do not reliably prevent shell metacharacter interpretation

Why this happens

The underlying flaw is command construction from untrusted input. Termix passes administrator-controlled domain and email values to child_process.execSync, causing the command to be interpreted by a shell rather than treating each value as an isolated argument. Shell metacharacters can therefore alter command behavior or introduce additional commands, mapping to CWE-78: Improper Neutralization of Special Elements used in an OS Command.

Potential impact

  • Arbitrary operating-system commands may execute as the Termix backend process
  • Termix databases and application data could be exposed or altered
  • Process secrets and stored credentials could be compromised
  • The attacker could gain network reachability available to the backend
  • The host or connected infrastructure could be used for lateral movement

General mitigation guidance

Mitigation generally focuses on removing shell interpretation from application-controlled command execution and reducing trust in administrative configuration values.

Common defensive patterns include:

  • Prefer direct process-spawning APIs that pass arguments separately instead of invoking a shell
  • Apply strict allowlists and schema validation to domain, email, DNS, and certificate parameters
  • Treat values from authenticated administrators as untrusted at command boundaries
  • Avoid dynamically assembling commands from strings
  • Run certificate-management workflows with minimal operating-system privileges and restricted filesystem and network access
  • Keep credentials and process secrets outside the backend process environment where practical
  • Enforce authorization, audit logging, and change controls for certificate settings

How teams detect issues like this

Organizations can look for command-injection risks through:

  • Static analysis rules identifying execSync, shell execution, and string interpolation involving request or database values
  • Code review checks for commands assembled through concatenation, template literals, or quoted user input
  • Tests that verify metacharacters are treated as data and cannot alter process arguments
  • Runtime monitoring for unexpected child processes, shell invocation, certificate-tool execution, or unusual outbound connections
  • Policy enforcement requiring argument-array process APIs and forbidding shell execution for untrusted values
  • Review of ACME configuration changes and certificate-request audit events

Sources

SourceLink
github.comgithub.com/Termix-SSH/Termix/commit/c7a9063a72071153723e668787548766c971f029
github.comgithub.com/Termix-SSH/Termix/commit/ddbdd5c437c2296607dfaa4265d6f63fbc1ca92e
github.comgithub.com/Termix-SSH/Termix/pull/1067
github.comgithub.com/Termix-SSH/Termix/releases/tag/release-2.5.1-tag
github.comgithub.com/Termix-SSH/Termix/security/advisories/GHSA-pr55-25gf-5f9v

Frequently asked

questions

It can be triggered through Termix web functionality by an authenticated administrator who can modify ACME SSL settings and initiate a certificate request. It is not necessarily exploitable by an unauthenticated external user.

The attacker needs administrative access, or another path to obtain equivalent permission to update the relevant ACME settings and invoke the certificate-request workflow.

Avoid shell interpretation entirely by using a process API that supplies validated arguments separately. Strictly validate each parameter and treat all configuration values as untrusted at execution boundaries.

Use secure coding standards that prohibit string-built shell commands, add static analysis and regression tests for injection behavior, limit backend privileges, and monitor unexpected child-process activity.

Find out what's already
exploitable in your codebase.