Loading...
Skip to main content

CVE-2026-42087 — OpenC3 COSMOS has SQL Injection in openc3 — CVE...

CRITICAL

OpenC3 COSMOS has SQL Injection in QuestDB Time-Series Database

Published April 23, 2026Updated July 13, 2026Source: osv

Summary

**Vulnerability Type: CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') Attack type: Authenticated remote Impact: Telemetry data disclosure and deletion Affected components: openc3-tsdb (QuestDB)** A SQL injection vulnerability exists in the Time-Series Database (TSDB) component of COSMOS. The `tsdb_lookup` function in the `cvt_model.rb` file directly places user-supplied input into a SQL query without sanitizing the input. As a result, a user can break out of the initial SQL statement and execute arbitrary SQL commands, including deleting data. <img width="940" height="719" alt="image" src="https://github.com/user-attachments/assets/2c2dd294-6192-49d3-b670-fd7b82c05be0" /> Figure 1: Source code vulnerable to SQL injection Additionally, the `get_tlm_values` RPC endpoint only requires “tlm” permissions, allowing any user with the Admin, Operator, Viewer, or Runner roles to send a request to the TSDB. This permission is defined in roles-permissions.md to allow for the user to view telemetry data, but this vulnerability also allows them to delete data and tables. <img width="940" height="410" alt="image" src="https://github.com/user-attachments/assets/40be7e8d-51f9-442d-bbd7-77c8488a2f78" /> Figure 2: Source code showing the required permissions for the `get_tlm_values` endpoint Sending a normal request to the endpoint brings back a single array of values for the parameter: <img width="944" height="481" alt="image" src="https://github.com/user-attachments/assets/23678f17-6bdf-41c1-81bc-ace5a8daa7e5" /> Figure 3: A normal request to the `get_tlm_values` endpoint However, sending a specially crafted request within the start_time variable brings back all the data in the database: <img width="944" height="432" alt="image" src="https://github.com/user-attachments/assets/bd5ecc87-ba9c-43f0-b196-91062b9c395a" /> Figure 4: The request and response after sending the SQL injection payload This payload can be modified to executes SQL commands in the TSDB. <img width="944" height="425" alt="image" src="https://github.com/user-attachments/assets/70c3c88e-9ed6-4542-bfb4-e77abb002c15" /> Figure 5: SQL injection used to execute arbitrary SQL command The user can then delete all the historical data in the database: <img width="944" height="496" alt="image" src="https://github.com/user-attachments/assets/f2dc1fa6-5fe0-4232-867a-a65776f108ee" /> Figure 6: Example payload dropping the tables ### Steps to Reproduce 1. Capture a JSON-RPC request to the `get_tlm_values` endpoint. 2. Add the `start_time` key to the request body and place the following in the value: ```sql ‘ OR 1=1 -- ``` 3. Retrieve all database data. ### Recommendations • Sanitize all user-supplied input before executing it • Use prepared statements with parameterized queries when executing SQL statements

Advisory Timeline

  • First published April 23, 2026 (172 days ago).
  • Last revised July 13, 2026 — 81 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Bundler
Update openc3 to 7.0.0-rc3 or later
gem install openc3 -v 7.0.0-rc3

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: rubygems (1).

PackageEcosystemAffectedFixed In
openc3
rubygems
6.10.0, 6.10.1, 6.10.2, 6.10.3 (+9 more)7.0.0-rc3

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 9.6 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N

Frequently Asked Questions

What is CVE-2026-42087?
OpenC3 COSMOS has SQL Injection in QuestDB Time-Series Database This vulnerability has been assigned a severity rating of CRITICAL (CVSS score: 9.6/10).
How do I check if my project is affected by CVE-2026-42087?
CVE-2026-42087 affects openc3. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-42087 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
9.6

Exploitation is straightforward and causes maximum impact. Patch immediately.

Also Known As

GHSA-v529-vhwc-wfc5
PYSEC-2026-2244

Related CVEs

  • CVE-2026-42088
    CRITICAL

    OpenC3 COSMOS: Permissions Bypass Provides User Access to Unassigned Administrative Actions via Script Runner Tool

  • CVE-2026-77602
    CRITICAL

    OpenC3 COSMOS: Authenticated remote code execution via the user-writable config overlay (table definitions, cmd/tlm definitions, and script suites)

  • CVE-2025-68271
    CRITICAL

    openc3-api Vulnerable to Unauthenticated Remote Code Execution

  • CVE-2026-77601
    HIGH

    OpenC3 COSMOS: Authenticated OS command injection via the `pypi_url` setting

  • CVE-2026-42084
    HIGH

    OpenC3 COSMOS: Hijacked session token can be used to reset password for persistence

  • CVE-2026-42085
    MEDIUM

    OpenC3 COSMOS allows arbitrary writes to plugins directory via path-traversed config filenames

  • CVE-2024-47529
    MEDIUM

    OpenC3 stores passwords in clear text (`GHSL-2024-129`)

  • CVE-2024-43795
    MEDIUM

    OpenC3 Cross-site Scripting in Login functionality (`GHSL-2024-128`)

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies