Description
Yamcs is a mission control framework. Prior to 5.12.8 and 5.13.2, Yamcs allows a user with SystemPrivilege.ControlArchiving to create a double-quoted StreamSQL column name that is interpolated into generated Java source by Expression.fillCode_InputDefVars and Expression.sanitizeName. A sum aggregate reaches yamcs-core/src/main/java/org/yamcs/yarch/streamsql/CompilableAggregateExpression.java and yamcs-core/src/main/java/org/yamcs/yarch/streamsql/funct/SumExpression.java through SelectExpression.compile, where Janino SimpleCompiler.cook compiles the injected source. POST /api/archive/{instance}:executeSql can therefore execute arbitrary Java in the Yamcs server process, exposing mission data and credentials and permitting telemetry tampering or denial of service. This issue is fixed in versions 5.12.8 and 5.13.2.
Published: 2026-08-28
Score: 9.1 Critical
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Yamcs, a mission control framework, permits an authenticated user with the SystemPrivilege.ControlArchiving privilege to craft a double‑quoted StreamSQL column name that is directly interpolated into generated Java source code. The injection path originates in Expression.fillCode_InputDefVars and Expression.sanitizeName, ultimately reaching CompilableAggregateExpression and SumExpression during SELECT compilation. When the POST /api/archive/{instance}:executeSql endpoint is called, Janino compiles the injected source, allowing arbitrary Java to run inside the Yamcs server process. This flaw exposes mission data, credentials, permits telemetry tampering, and enables denial‑of‑service attacks. The weakness is classified as CWE‑94, an injection of source code. The vulnerability is exploitable only by users who can authenticate to Yamcs and hold the ControlArchiving permission. An attacker who gains or is granted this privilege can send crafted SQL expressions directly from the API, leading to full code execution on the server hosting Yamcs. The impact extends system stability and confidentiality, potentially compromising all mission data. A CVSS score of 9.1 indicates a high severity, while the EPSS score is unavailable and the issue is not listed in the CISA KEV catalog. Nevertheless, because the flaw requires privileged access, an internal attacker or a compromised privileged account can exploit it without needing network exposure beyond the internal Yamcs environment. The lack of publicly available exploit code does not reduce the technical risk, as the code paths are clear and an experienced attacker could craft a payload quickly. The presence of the patch in newer releases mitigates the risk only if the system is upgraded.

Affected Systems

The affected product is Yamcs (org.trans4m yamcs:yamcs). Versions prior to 5.12.8 and 5.13.2 are vulnerable. Specifically, any release from earliest 5.12.0 up to 5.12.7 and from 5.13.0 up to 5.13.1 contains the flaw; the issue is fixed in 5.12.8 and 5.13.2 and later versions are presumed secure.

Risk and Exploitability

The CVSS score of 9.1 reflects a critical attack surface: an attacker can achieve full system compromise, disrupt mission operations, and manipulate telemetry. Since the EPSS score is not available, the likelihood of exploitation cannot be quantified, but the absence of public exploits does not mitigate risk because the code paths are plainly documented. The vulnerability requires an authenticated user with the SystemPrivilege.ControlArchiving privilege; therefore, the attack vector is internal, leveraging legitimate access. If an attacker gains privileged credentials or compromises an account with that privilege, they can send a crafted SQL expression via the REST API, leading to arbitrary Java execution in the Yamcs server process. Because the flaw is specific to a privileged API operation, the exposure to external actors is limited to those who can obtain or are granted the necessary privilege. However, within an organization, compromise of such accounts can occur through social engineering or credential theft, providing a realistic threat vector. The presence of the patch in newer releases reduces risk only upon upgrade; otherwise, the vulnerability remains a critical threat.

Generated by OpenCVE AI on August 28, 2026 at 21:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update Yamcs to version 5.12.8 or later (5.13.2 is also fixed)
  • Restrict the POST /api/archive/{instance}:executeSql endpoint to users with the SystemPrivilege.ControlArchiving privilege, or add stricter permission checks prior to generating SQL strings
  • Apply network segmentation or firewall rules to limit access to the Yamcs server from untrusted hosts

Generated by OpenCVE AI on August 28, 2026 at 21:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-3g44-3m7x-cgg2 Yamcs vulnerable to authenticated RCE via StreamSQL aggregate-compiler column-name injection in Yamcs `executeSql`
History

Fri, 28 Aug 2026 22:15:00 +0000

Type Values Removed Values Added
First Time appeared Yamcs
Yamcs yamcs
Vendors & Products Yamcs
Yamcs yamcs

Fri, 28 Aug 2026 19:45:00 +0000

Type Values Removed Values Added
Description Yamcs is a mission control framework. Prior to 5.12.8 and 5.13.2, Yamcs allows a user with SystemPrivilege.ControlArchiving to create a double-quoted StreamSQL column name that is interpolated into generated Java source by Expression.fillCode_InputDefVars and Expression.sanitizeName. A sum aggregate reaches yamcs-core/src/main/java/org/yamcs/yarch/streamsql/CompilableAggregateExpression.java and yamcs-core/src/main/java/org/yamcs/yarch/streamsql/funct/SumExpression.java through SelectExpression.compile, where Janino SimpleCompiler.cook compiles the injected source. POST /api/archive/{instance}:executeSql can therefore execute arbitrary Java in the Yamcs server process, exposing mission data and credentials and permitting telemetry tampering or denial of service. This issue is fixed in versions 5.12.8 and 5.13.2.
Title Yamcs: Authenticated RCE via StreamSQL aggregate-compiler column-name injection in Yamcs `executeSql`
Weaknesses CWE-94
References
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-28T17:05:02.307Z

Reserved: 2026-06-16T22:44:22.283Z

Link: CVE-2026-55511

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-28T20:18:27.947

Modified: 2026-08-28T20:18:27.947

Link: CVE-2026-55511

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T22:00:14Z

Weaknesses
  • CWE-94

    Improper Control of Generation of Code ('Code Injection')