search menu icon-carat-right cmu-wordmark

CERT Coordination Center

Komodo Periphery Agent Contains an OS Command Injection Vulnerability

Vulnerability Note VU#456950

Original Release Date: 2026-10-13 | Last Revised: 2026-10-13

Overview

Versions <= 2.2.0 of Periphery, an agent within the Komodo server management platform, is vulnerable to OS command injection due to missing validation of container names, through two vectors: container destruction and container log searches. This allows an authenticated attacker to execute arbitrary commands as root on the underlying host, enabling persistent compromise of infrastructure.

Description

Komodo is an open-source server and deployment manager, maintained by mogh.tech, widely used in self-hosted and Docker multi-server environments. Periphery is an agent service installed on servers to give Komodo control over Docker environments.

In vulnerable versions of Komodo, Periphery does not properly validate user-supplied Docker container names before those values are interpolated into shell commands used by the agent. Two operations exhibit this vulnerability: container destruction (DestroyContainer / RemoveContainer) and container log searches (SearchContainerLog / GetContainerLogSearch). Through both avenues, raw container names are directly inserted into sh -c command lines without any shell escaping or validation. These commands then run with Periphery's root privileges on the host OS and Docker socket.

Impact

An authenticated non-admin user can escalate privileges through OS command injection via a maliciously crafted container name. Successful exploitation enables arbitrary command execution as root on a target server within a Komodo deployment. Ultimately, this enables an attacker to establish persistence, achieve lateral movement, and completely compromise a user or organization's managed infrastructure.

Solution

Fortunately, Komodo was reached to coordinate this vulnerability, and a patch has been implemented to remediate the issue in versions 2.3.0 and higher. The CERT/CC recommends that all users update immediately.

Acknowledgements

Thanks to Muhammadjon Ahmadjonov for reporting this vulnerability. This document was written by Alex Lewis.

Vendor Information

456950
 

Komodo Affected

Notified:  2026-08-19 Updated: 2026-10-13

Statement Date:   August 19, 2026

CVE-2026-110005 Affected

Vendor Statement

Who this affects

Only Komodo installations with more than one user, where non-admin users hold restricted permissions. This is a privilege escalation within Komodo's permission model — it is not remotely exploitable without an account, and it grants an admin nothing they do not already have. If your installation has only admin users, you are not affected.

Summary

Several Komodo Periphery handlers interpolated request-supplied values into shell command strings executed via bash -c without escaping them. An authenticated user with a Logs grant on a resource could inject shell metacharacters and execute arbitrary commands on the server hosting it.

Affected methods

Log search: SearchContainerLog, SearchStackLog, and the Swarm service equivalent require PermissionLevel::Read plus the Logs specific permission on a Server, Stack, or Deployment. Both the container/service name and the search terms were interpolated into a docker logs … | grep … pipeline. The terms sat inside hand-written single quotes, so a term containing ' escaped its quoting and ran as a separate command.

RunStackService: Requires PermissionLevel::Execute on a Stack. The ad-hoc supplied service, workdir, user, entrypoint, and env were interpolated into docker compose run (only command was escaped).

Swarm secret/config creation left name, driver, and labels unescaped and passed the payload through a <<'EOF' heredoc, so a payload containing a line of exactly EOF closed it early and executed the following lines. Handlers on the non-shell execution path could not execute commands, but a name beginning with - was still parsed as a flag by docker.

Impact

Arbitrary command execution as the Periphery process user on the target server, bypassing the Komodo permission model.

Exploitation requires an account holding one of the grants above. An account with no relevant grant, or an unauthenticated attacker, cannot reach these endpoints — unless a Periphery instance is exposed directly without its passkey.

Affected versions

All versions prior to 2.3.0. Verified vulnerable at v1.19.1, v2.0.0, v2.1.0, v2.1.1, v2.1.2, and v2.2.0. The log search vector dates to the introduction of Stack support; RunStackService was introduced in v1.19.1.

Patches

Fixed in 2.3.0: request-supplied values are shell-escaped, the heredoc is replaced with a pipe, and -- precedes positional arguments to block argument injection.

Configuration fields documented to accept shell syntax (deployment command/extra_args, pre_deploy/post_deploy, on_clone/on_pull, compose_cmd_wrapper) are still passed to a shell by design; setting them requires write permission, which already implies command execution.

Workarounds

None. Auditing who holds Logs or Execute grants limits exposure but does not remove it. Upgrade to 2.3.0.

Classification

CWE-78: Improper Neutralization of Special Elements used in an OS Command
Secondary: CWE-88 (argument injection)
CVSS 3.1: 9.9 Critical — AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H


Other Information

CVE IDs: CVE-2026-110005
API URL: VINCE JSON | CSAF
Date Public: 2026-10-13
Date First Published: 2026-10-13
Date Last Updated: 2026-10-13 19:24 UTC
Document Revision: 1

Sponsored by CISA.