<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Openc3 (&gt;= 5.12.0, &lt;= 7.2.1) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/openc3--5.12.0--7.2.1/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Wed, 23 Sep 2026 19:57:20 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/openc3--5.12.0--7.2.1/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Authenticated OS Command Injection in OpenC3 COSMOS</title><link>https://feed.craftedsignal.io/briefs/2026-09-openc3-rce/</link><pubDate>Wed, 23 Sep 2026 19:57:20 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-openc3-rce/</guid><description>Authenticated users can achieve arbitrary OS command execution in the OpenC3 COSMOS API via shell metacharacter injection in the pypi_url configuration setting during plugin installation.</description><content:encoded><![CDATA[<p>OpenC3 COSMOS, specifically the <code>openc3-cosmos-cmd-tlm-api</code> service, is vulnerable to authenticated OS command injection via the <code>pypi_url</code> setting. An attacker can use the JSON-RPC method <code>set_setting</code> to update this configuration with a string containing shell metacharacters. During the plugin installation process, the application incorrectly uses Ruby backticks to invoke <code>/openc3/bin/pipinstall</code>, passing the unsanitized <code>pypi_url</code> directly to <code>/bin/sh</code>. This behavior impacts OpenC3 versions 5.12.0 through 7.2.1. In the open-source edition, the vulnerability is accessible to any authenticated user due to improper authorization checks in <code>openc3/lib/openc3/utilities/authorization.rb</code>. Successful exploitation results in command execution as the <code>openc3</code> service user (uid 1001) within the application container, granting access to sensitive credentials, Redis/Valkey secrets, and bucket storage.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker authenticates to the <code>POST /openc3-api/auth/verify</code> endpoint to obtain a valid session token.</li>
<li>Attacker invokes the <code>set_setting</code> JSON-RPC method via <code>POST /openc3-api/api</code> to set the <code>pypi_url</code> parameter to a malicious payload (e.g., <code>https://pypi.org ; &lt;command&gt; ; #</code>).</li>
<li>Attacker prepares a malicious plugin gem containing a <code>requirements.txt</code> or <code>pyproject.toml</code> file to trigger the Python installation logic.</li>
<li>Attacker uploads the malicious plugin via <code>POST /openc3-api/plugins</code>.</li>
<li>Attacker triggers the plugin installation using the hash obtained from the upload via <code>POST /openc3-api/plugins/install/&lt;id&gt;</code>.</li>
<li>The <code>openc3/lib/openc3/models/plugin_model.rb</code> script executes the injected payload through the Ruby backtick operator, which spawns <code>/bin/sh -c</code>.</li>
<li>The operating system executes the malicious command with the privileges of the <code>openc3</code> service user.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for full control of the <code>openc3</code> service account inside the container. This leads to the exfiltration or modification of telemetry and commanding data, compromise of cloud storage (S3) credentials, and access to internal Redis/Valkey configuration passwords. This vulnerability enables lateral movement or deeper persistence within the scope of the affected container.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade OpenC3 to a patched version once available; monitor vendor security advisories for the specific release addressing CVE-2026-77601.</li>
<li>Apply the code-level mitigation by replacing the Ruby backtick execution in <code>plugin_model.rb</code> with an <code>OpenC3::ProcessManager.spawn</code> call using an argument array to prevent shell interpretation.</li>
<li>Implement input validation on the <code>pypi_url</code> setting to restrict values to legitimate HTTP or HTTPS URLs.</li>
<li>Review audit logs for anomalous <code>set_setting</code> calls involving JSON-RPC where the parameter values contain shell metacharacters like <code>;</code>, <code>&amp;</code>, <code>|</code>, or backticks.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>remote-code-execution</category><category>command-injection</category><category>cve-2026-77601</category></item></channel></rss>