/

CVE-2026-77601

Severity:

HIGH RISK

(8.8)

OS Command Injection (CWE-78) in OpenC3 COSMOS API

CVE-2026-77601

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-78

Impact:

Arbitrary Code Execution

Severity:

HIGH RISK

(8.8)

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

OpenC3 COSMOS contains an OS command injection vulnerability in the plugin installation workflow. An authenticated actor who can change the pypi_url setting may cause shell metacharacters to be interpreted, enabling arbitrary operating-system commands to run as the OpenC3 service user.

Affected context

The issue occurs in OpenC3 COSMOS deployments where an authenticated user can access the setting update operation and trigger plugin installation involving Python dependency metadata. Open-source deployments may expose the affected operations to any authenticated user, while Enterprise deployments generally limit them to administrators. The resulting commands execute with the privileges and credentials available to the OpenC3 service.

Exploit preconditions

  • Attack surface: Authenticated OpenC3 API and plugin installation workflow
  • Required access: Permission to modify the pypi_url setting; this may be available to any authenticated user in open-source deployments or administrators in Enterprise deployments
  • Trigger point: Installation of a plugin that processes Python dependency metadata
  • Why exploitation is possible: The configured URL is interpolated into a shell command without sufficiently separating data from shell syntax

Why this happens

The vulnerability results from incorporating attacker-influenced configuration data into a shell command through string interpolation. When the resulting command is processed by a command shell, shell metacharacters can change command interpretation and cause additional operating-system commands to execute. This behavior maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, commonly known as OS command injection.

Potential impact

  • Arbitrary operating-system commands may execute as the OpenC3 service user
  • The application runtime could be compromised
  • Redis data or operations could be accessed or altered
  • Bucket credentials available to the service could be exposed or misused
  • Embedded-system data or command workflows could be disrupted
  • Attackers could use the compromised service for lateral movement or persistence

General mitigation guidance

Mitigation generally focuses on eliminating shell interpretation of configuration-derived values and reducing the trust placed in mutable settings.

Common defensive patterns include:

  • Prefer direct process-execution APIs that pass arguments separately rather than invoking a shell
  • Apply strict allowlisting and canonical validation to package indexes and dependency sources
  • Treat API-managed settings as untrusted input, including values supplied by authenticated users
  • Avoid interpolating configuration values into command strings
  • Restrict plugin installation permissions according to least privilege
  • Run the service with minimal access to Redis, object storage, host resources, and credentials
  • Isolate plugin installation in a constrained environment with limited network and filesystem access

How teams detect issues like this

Organizations can look for command injection risks through:

  • Static analysis rules identifying shell invocation and string interpolation involving API or configuration values
  • Code review checks for command construction using concatenation, formatting, or interpolation
  • Tests that verify special characters remain data when settings reach process execution
  • API policy monitoring for unexpected changes to package-source or installation settings
  • Runtime detection of unusual child processes spawned by the OpenC3 service
  • Audit correlation between setting changes, plugin installations, and outbound network activity

Automated security review tools may help identify unsafe shell execution patterns, but findings should be validated against the actual execution path and authorization model.

Sources

SourceLink
github.comgithub.com/OpenC3/cosmos/commit/be70d1d836c83c3b084e768e31a399312d4cbe0b
github.comgithub.com/OpenC3/cosmos/pull/3489
github.comgithub.com/OpenC3/cosmos/security/advisories/GHSA-vp3w-52v9-q57f

Frequently asked

questions

It can be exploitable through the OpenC3 API when an attacker has valid authentication and the required permission to change the relevant setting and initiate the plugin installation workflow.

No. Open-source deployments may allow any authenticated user to reach the affected operations, while Enterprise deployments generally require administrator-level access.

Avoid shell-based command construction for user-influenced values. Use direct process execution with separately encoded arguments, strict allowlists, and validation of package-source settings.

Treat authenticated-user settings as untrusted, enforce least-privilege authorization, restrict plugin installation, monitor command execution, and test for shell interpretation during security reviews.

Find out what's already
exploitable in your codebase.