GHSA-wgx6-g857-jjf7 CVE-2026-42084 PYSEC-2026-2242
OpenC3 COSMOS: Hijacked session token can be used to reset password for persistence
- Severity
- 8.1 / 10
- High · CVSS 3.1
- Exploit chance (EPSS)
- 0.30%
- Chance of exploitation in the next 30 days. Higher than 23.27% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-620 Unverified Password Change
- Fix
- Available
- 2 packages have a fixed version
Description
Summary
The OpenC3 password change functionality allows a user to change their password without providing the old password, by accepting a valid session token instead. In assumed breach scenarios, this behaviour can be exploited by an attacker who has already obtained a valid session token, to gain persistence in hijacked account (including admin) and prevent legitimate users from accessing the account.
Details
The design flaw in authentication model (authentication.rb) allows for interchangeable use of password and session tokens for user authentication As old tokens are not revoked upon password reset, an attacker who has obtained a valid session token can continue to authenticate and change the account’s password even after the victim resets it, thereby maintaining persistent control over the compromised account.
PoC
- Attacker is logged in user account with hijacked valid session token, but not knowing the actual password
- Legitimate user, as preventive action, changes his password (password123) using old password (password), that he knows, then establishes new session
- Attacker issues another password change request (in web proxy like Burp) supplying his still valid token as old_password, changing it to attacker-password, from this point preventing any other legitimate users from accessing account <img width="912" height="479" alt="image" src="https://github.com/user-attachments/assets/d27b5980-0326-40f8-bb39-657d7b1c95a0" /> <img width="923" height="423" alt="image" src="https://github.com/user-attachments/assets/060d9fe1-637e-4a2d-9142-76612984ea28" />
Impact
Persistence of an attacker who obtained valid session token and preventing legitimate users from account access
Affected versions
PyPI
| Package | Vulnerable | Fixed in |
|---|---|---|
| openc3 | < 6.10.5 |
6.10.5 |
RubyGems
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
openc3 PyPI → 6.10.5
- pip
pip install --upgrade "openc3>=6.10.5"- poetry
poetry add "openc3>=6.10.5"- uv
uv add "openc3>=6.10.5"
openc3 RubyGems → 6.10.5
- bundler
bundle update openc3 # Gemfile: gem "openc3", ">= 6.10.5"
Severity breakdown
CVSS 3.1 8.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Weakness
CWE-620: Unverified Password Change
When setting a new password for a user, the product does not require knowledge of the original password, or using another form of authentication.
How to prevent it
- Architecture and Design: When prompting for a password change, force the user to provide the original password in addition to the new password.
- Architecture and Design: Do not use "forgotten password" functionality. But if you must, ensure that you are only providing information to the actual user, e.g. by using an email address or challenge question that the legitimate user already provided in the past; do not allow the current user to change this identity information until the correct password has been provided.
References
Advisories
Packages
Other links
- github.com/OpenC3/cosmos/security/advisories/GHSA-wgx6-g857-jjf7
- github.com/OpenC3/cosmos/commit/2e623714e3426d5ae81b6f8239d4a2a6937ef776
- github.com/OpenC3/cosmos/releases/tag/v6.10.5
- github.com/OpenC3/cosmos/releases/tag/v7.0.0-rc3
- github.com/rubysec/ruby-advisory-db/blob/master/gems/openc3/CVE-2026-42084.yml
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-jjq7-m736-w977 OpenC3 COSMOS: Authenticated remote code execution via the user-writable config overlay (table definitions, cmd/tlm definitions, and script suites) | Critical | Also affects openc3 |
| GHSA-vp3w-52v9-q57f OpenC3 COSMOS: Authenticated OS command injection via the `pypi_url` setting | High | Also affects openc3 |
| GHSA-2wvh-87g2-89hr OpenC3 COSMOS: Permissions Bypass Provides User Access to Unassigned Administrative Actions via Script Runner Tool | High | Also affects openc3 |
| GHSA-v529-vhwc-wfc5 OpenC3 COSMOS has SQL Injection in QuestDB Time-Series Database | Critical | Also affects openc3 |
| GHSA-ffq5-qpvf-xq7x OpenC3 COSMOS is Vulnerable to Self-XSS Through the Command Sender | Medium | Also affects openc3 |
| GHSA-4jvx-93h3-f45h OpenC3 COSMOS allows arbitrary writes to plugins directory via path-traversed config filenames | Medium | Also affects openc3 |
| GHSA-w757-4qv9-mghp openc3-api Vulnerable to Unauthenticated Remote Code Execution | Critical | Also affects openc3 |
| GHSA-4xqv-47rm-37mm OpenC3 stores passwords in clear text (`GHSL-2024-129`) | Medium | Also affects openc3 |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor