CVE-2026-42086
OpenC3 COSMOS: Self-XSS in the Command Sender
OpenC3 COSMOS provides the functionality needed to send commands to and receive data from one or more embedded systems. Prior to version 7.0.0, the Command Sender UI uses an unsafe eval() function on array-like command parameters, which allows a user-supplied payload to execute in the browser when sending a command. This creates a self-XSS risk because an attacker can trigger their own script execution in the victim’s session, if allowed to influence the array parameter input, for example via phishing. If successful, an attacker may read or modify data in the authenticated browser context, including session tokens in local storage. This issue has been patched in version 7.0.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
4.6
OpenC3 COSMOS: Self-XSS in the Command Sender
OpenC3 COSMOS provides the functionality needed to send commands to and receive data from one or more embedded systems. Prior to version 7.0.0, the Command Sender UI uses an unsafe eval() function on array-like command parameters, which allows a user-supplied payload to execute in the browser when sending a command. This creates a self-XSS risk because an attacker can trigger their own script execution in the victim’s session, if allowed to influence the array parameter input, for example via phishing. If successful, an attacker may read or modify data in the authenticated browser context, including session tokens in local storage. This issue has been patched in version 7.0.0.
- Record
CVE-2026-42086- CVSS 3.1
- 4.6 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
EUVDEUVD-2026-27061
4.6
OpenC3 COSMOS provides the functionality needed to send commands to and receive data from one or more embedded systems. Prior to version 7.0.0, the Command Sender UI uses an unsafe eval() function on array-like command parameters, which allows a user-supplied payload to execute in the browser when sending a command. This creates a self-XSS risk because an attacker can trigger their own script execution in the victim’s session, if allowed to influence the array parameter input, for example via phishing. If successful, an attacker may read or modify data in the authenticated browser context, including session tokens in local storage. This issue has been patched in version 7.0.0.
- Record
EUVD-2026-27061- CVSS 3.1
- 4.6 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-ffq5-qpvf-xq7x
4.6
OpenC3 COSMOS is Vulnerable to Self-XSS Through the Command Sender
Summary
The Command Sender UI uses an unsafe eval() function on array-like command parameters, which allows a user-supplied payload to execute in the browser when sending a command. This creates a self-XSS risk because an attacker can trigger their own script execution in the victim’s session, if allowed to influence the array parameter input, for example via phishing. If successful, an attacker may read or modify data in the authenticated browser context, including session tokens in local storage.
Details
The unsafe eval() usage on user-supplied ARRAY parameters happens in convertToValue method in CommandSender.vue
PoC
- Using a drop-down form, choose any command that supports ARRAY parameters,
- Inside square brackets “[…]” place a JavaScript code to be executed
- Send command to CmdTlmServer using dedicated “Send” button
- Observe JavaScript code being executed in the current browser session context
Below example uses INST ARYCMD to execute simple JavaScript code snippet alert(“XSS”).
<img width="947" height="356" alt="image" src="https://github.com/user-attachments/assets/6fbdb6c9-616a-4268-bbb8-a8a1044437ad" />
<img width="942" height="545" alt="image" src="https://github.com/user-attachments/assets/4df24353-aea0-4aa0-adcf-b7c7e387dc83" />
Impact
Local JavaScript execution in the user's browser
- Record
GHSA-ffq5-qpvf-xq7x- CVSS 3.1
- 4.6 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
NVD
4.6
OpenC3 COSMOS provides the functionality needed to send commands to and receive data from one or more embedded systems. Prior to version 7.0.0, the Command Sender UI uses an unsafe eval() function on array-like command parameters, which allows a user-supplied payload to execute in the browser when sending a command. This creates a self-XSS risk because an attacker can trigger their own script execution in the victim’s session, if allowed to influence the array parameter input, for example via phishing. If successful, an attacker may read or modify data in the authenticated browser context, including session tokens in local storage. This issue has been patched in version 7.0.0.
- Record
CVE-2026-42086- CVSS 3.1
- 4.6 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSV
4.6
OpenC3 COSMOS: Self-XSS in the Command Sender
OpenC3 COSMOS provides the functionality needed to send commands to and receive data from one or more embedded systems. Prior to version 7.0.0, the Command Sender UI uses an unsafe eval() function on array-like command parameters, which allows a user-supplied payload to execute in the browser when sending a command. This creates a self-XSS risk because an attacker can trigger their own script execution in the victim’s session, if allowed to influence the array parameter input, for example via phishing. If successful, an attacker may read or modify data in the authenticated browser context, including session tokens in local storage. This issue has been patched in version 7.0.0.
- Record
CVE-2026-42086- CVSS 3.1
- 4.6 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSVGHSA-ffq5-qpvf-xq7x
4.6
OpenC3 COSMOS is Vulnerable to Self-XSS Through the Command Sender
Summary
The Command Sender UI uses an unsafe eval() function on array-like command parameters, which allows a user-supplied payload to execute in the browser when sending a command. This creates a self-XSS risk because an attacker can trigger their own script execution in the victim’s session, if allowed to influence the array parameter input, for example via phishing. If successful, an attacker may read or modify data in the authenticated browser context, including session tokens in local storage.
Details
The unsafe eval() usage on user-supplied ARRAY parameters happens in convertToValue method in CommandSender.vue
PoC
- Using a drop-down form, choose any command that supports ARRAY parameters,
- Inside square brackets “[…]” place a JavaScript code to be executed
- Send command to CmdTlmServer using dedicated “Send” button
- Observe JavaScript code being executed in the current browser session context
Below example uses INST ARYCMD to execute simple JavaScript code snippet alert(“XSS”).
<img width="947" height="356" alt="image" src="https://github.com/user-attachments/assets/6fbdb6c9-616a-4268-bbb8-a8a1044437ad" />
<img width="942" height="545" alt="image" src="https://github.com/user-attachments/assets/4df24353-aea0-4aa0-adcf-b7c7e387dc83" />
Impact
Local JavaScript execution in the user's browser
- Record
GHSA-ffq5-qpvf-xq7x- CVSS 3.1
- 4.6 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSVPYSEC-2026-105
4.6
OpenC3 COSMOS provides the functionality needed to send commands to and receive data from one or more embedded systems. Prior to version 7.0.0, the Command Sender UI uses an unsafe eval() function on array-like command parameters, which allows a user-supplied payload to execute in the browser when sending a command. This creates a self-XSS risk because an attacker can trigger their own script execution in the victim’s session, if allowed to influence the array parameter input, for example via phishing. If successful, an attacker may read or modify data in the authenticated browser context, including session tokens in local storage. This issue has been patched in version 7.0.0.
- Record
PYSEC-2026-105- CVSS 3.1
- 4.6 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
openc3RubyGems |
before 7.0.0 | 7.0.0 |
openc3PyPI |
before 7.0.0 | 7.0.0 |
openc3RubyGems |
before 7.0.0, plus listed versions 5.0.105.0.115.0.65.0.75.0.8 Show 45 moreShow less5.0.95.1.05.1.15.10.05.10.15.11.05.11.15.11.25.11.35.12.05.13.05.14.05.14.15.14.25.15.05.15.15.15.25.16.05.16.15.16.25.17.05.17.15.18.05.19.05.2.05.20.05.3.05.4.05.4.15.4.25.4.3.pre.beta05.5.05.5.0.pre.beta05.5.15.5.25.5.2.pre.beta05.6.05.6.15.7.05.7.25.8.05.8.15.9.05.9.16.0.0 |
7.0.0 |
openc3PyPI |
before 7.0.0, plus listed versions 0.1.05.10.05.10.15.11.05.11.1 Show 45 moreShow less5.11.25.11.35.12.05.13.05.14.05.14.15.14.25.15.05.15.15.15.25.16.05.16.15.16.25.17.05.17.15.18.05.19.05.20.05.9.2b06.0.06.0.16.0.26.1.06.10.06.10.16.10.26.10.36.10.46.10.56.10.66.2.06.2.16.3.06.4.06.4.16.4.26.5.06.5.16.6.06.7.06.8.06.8.16.9.06.9.16.9.2 |
7.0.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-42086 is a medium vulnerability (CVSS 4.6) in Openc3 Cosmos, published April 22, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.20%, the 9th percentile. Fixed in openc3 7.0.0.
References
github.com/OpenC3/cosmos/security/advisories/GHSA-ffq5-qpvf-xq7x
nvd.nist.gov/vuln/detail/CVE-2026-42086
github.com/pypa/advisory-database/tree/main/vulns/openc3/PYSEC-2026-105.yaml
github.com/rubysec/ruby-advisory-db/blob/master/gems/openc3/CVE-2026-42086.yml
github.com/advisories/GHSA-ffq5-qpvf-xq7x
github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42086.json
github.com/OpenC3/cosmos
Left out here: 30 versions. The JSON record has them.