Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach Yamcs HTTP port 8090
-
DeliveryTarget /auth/token with known username
-
ExploitLoop password-guess POST requests unthrottled
-
ExecutionReceive valid token on hit
-
PersistAuthenticate to mission control
-
ImpactAccess/command spacecraft operations
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Brute-force prevention, rate limiting
|
| Exploitation Conditions | Exploitation requires only network reachability to the Yamcs HTTP server (default port 8090) and its POST /auth/token endpoint using the password grant type - the missing-rate-limit condition is present by default in all versions before 5.12.7, since throttling did not exist and the docs offered no way to enable it. No authentication, user interaction, or special configuration is needed to send the guessing requests (AV:N/AC:L/PR:N/UI:N). The key LIMITING factor is that actual account compromise depends on a guessable, weak, or default credential existing on a valid username; strong, unique passwords or an external IdP with its own lockout blunt the attack, and instances not exposed beyond a trusted management network are not reachable by remote attackers. |
| Impact | The signals conflict sharply and warrant scrutiny. The published CVSS is 9.8 (AV:N/AC:L/PR:N/UI:N with C:H/I:H/A:H), but that vector overstates direct impact: this flaw does not itself disclose data or execute code - it merely removes a rate-limiting control, so any compromise is conditional on successfully guessing a weak or default credential. Supporting the lower-risk reading, EPSS is only 0.05% (17th percentile) and the CVE is NOT in CISA KEV, indicating no confirmed active exploitation. Counterbalancing that, publicly available exploit code exists (Exploit-DB 52605) and the PoC demonstrates trivial exploitation (20 attempts in 0.07s), so the barrier to attempting brute force is essentially zero. Net: treat this as a real hardening priority for internet-exposed Yamcs instances - especially where default accounts like 'operator' or weak passwords are in use - but the honest severity is materially lower than 9.8 because success depends on credential strength, not on the flaw alone. Verify: the C:H/I:H/A:H rating assumes a guessed account grants full control, which is not intrinsic to the missing-throttle weakness. |
| Exploit ScenarioDerived | An attacker who can reach the Yamcs HTTP port scripts a loop of POST /auth/token requests against a known or default username (e.g. 'operator'), cycling through a password dictionary as shown in the public PoC that fired 20 attempts in 0.07 seconds with no HTTP 429. Because AV:N/AC:L/PR:N/UI:N applies to the request itself, the guessing is unauthenticated and unthrottled; if any account uses a weak or default password, the attacker eventually receives a valid token and gains that account's mission-control access. Public exploit code is available on Exploit-DB (52605). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Jul 17, 2026
Missing brute-force protection in Yamcs (Yet Another Mission Control System) before 5.12.7 lets unauthenticated remote attackers submit unlimited password-guessing requests to the POST /auth/token endpoint in yamcs-core, which enforces no rate limiting, account lockout, or throttling (CWE-307). Publicly available exploit code exists (Exploit-DB 52605), though EPSS estimates real-world exploitation probability at only 0.05% (17th percentile) and the flaw is not listed in CISA KEV. The upstream fix (5.12.7) introduces a per-IP request cap defaulting to 5 auth requests per second.
Earlier versions of this analysis (1)
Unlimited credential brute-forcing is possible against Yamcs (yamcs-core < 5.12.7) because the POST /auth/token OAuth2 password-grant endpoint in AuthHandler.java enforces no rate limiting, account lockout, or failed-attempt throttling by default. Unauthenticated remote attackers can submit unlimited password guesses at machine speed - a publicly available proof-of-concept included in the advisory demonstrates 20 attempts completing in 0.07 seconds with zero HTTP 429 responses. CVSS signals AV:N/AC:L/PR:N/UI:N confirm this is trivially exploitable against any network-reachable Yamcs instance with no special prerequisites; in mission control contexts, a compromised account carries operational risk well beyond what the medium CVSS score alone conveys.
RemediationAI
Vendor-released patch: upgrade yamcs-core to 5.12.7 (or 5.13.0), which adds per-IP authentication rate limiting via the new maxAuthRequestsPerSecond HTTP server option (default 5 requests/second) and returns HTTP 429 on excess; see the advisory at https://github.com/yamcs/yamcs/security/advisories/GHSA-w5r6-mcgq-7pq4 and fix commit https://github.com/yamcs/yamcs/commit/309218c651680f79df11a8d0f8628f7033f98a83 with release https://github.com/yamcs/yamcs/releases/tag/yamcs-5.12.7. If immediate upgrade is not possible, place the /auth/token endpoint behind a reverse proxy or WAF that enforces request rate limits and IP-based throttling (note: this shifts correct client-IP handling to the proxy and requires trusting X-Forwarded-For), restrict network access to the Yamcs HTTP port (default 8090) to trusted management networks or VPN rather than exposing it to the internet, and enforce strong non-default passwords plus account lockout at the identity-provider level while rotating known default accounts such as 'operator'. These controls reduce brute-force feasibility but do not replace the throttling the patch provides.
Affected VersionsENISA
Affected Packages
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 is an open-source Java-based mission control system used to command and monitor spacecraft, satellites, and other remote payloads. The vulnerable component is the HTTP authentication layer in yamcs-core (Maven package org.yamcs:yamcs-core), specifically AuthHandler.handleToken() in AuthHandler.java, which serves OAuth-style password grant tokens via POST /auth/token backed by the SecurityStore login flow. The root cause is CWE-307 (Improper Restriction of Excessive Authentication Attempts): the handler passed every request straight to getSecurityStore().login() with no throttle, failed-attempt counter, CAPTCHA, or lockout, and neither the quickstart nor documentation guided operators to add such controls. The patch adds a new IP_LIMIT_CACHE with a per-IP counter, a configurable maxAuthRequestsPerSecond option (default 5), a HandlerContext fix to correctly parse the first X-Forwarded-For hop, and a new TooManyRequestsException that returns HTTP 429.
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
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Endpoint is remote and unauthenticated (AV:N/PR:N/UI:N), but compromise requires guessing a weak credential (AC:H) and the flaw itself only facilitates conditional, partial account access (C:L/I:L/A:N), not the vendor's C:H/I:H/A:H.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
Summary
The authentication endpoint POST /auth/token in yamcs-core lacks any form of rate limiting, account lockout, or failed attempt throttling. As a result, an unauthenticated remote attacker can perform unlimited password guessing attempts against any user account.
This missing rate limiting vulnerability (CWE-307) significantly increases the risk of successful brute-force attacks.
Root Cause
File: yamcs-core/src/main/java/org/yamcs/http/auth/AuthHandler.java
POST /auth/token has no rate limiting, no lockout after failed attempts, and no CAPTCHA. The handler processes unlimited authentication requests without any throttling mechanism:
// AuthHandler.java - handleToken()
// No throttle, no failed attempt counter, no lockout
private void handleToken(HandlerContext ctx) {
...
getSecurityStore().login(token).whenComplete((info, err) -> {
// Directly attempts authentication with no rate check
});
}This is absent by default - the official quickstart and documentation contain no guidance on configuring rate limiting.
Impact
An attacker can make unlimited authentication attempts against any account. This enables efficient brute-force attacks against any account.
Proof of Concept
# 20 attempts - zero rate limiting
for i in $(seq 1 20); do
curl -s -o /dev/null -w "Attempt $i: HTTP %{http_code}\n" \
-X POST "http://TARGET:8090/auth/token" \
-d "grant_type=password&username=operator&password=operator12$i"
done
# All return HTTP 401 - no HTTP 429 everConfirmed: 20 attempts in 0.07 seconds, no rate limiting enforced.
Fix
Implement DRF-style throttling on /auth/token:
// Track failed attempts per IP
private static final Cache<String, Integer> FAILED_ATTEMPTS =
CacheBuilder.newBuilder().expireAfterWrite(15, TimeUnit.MINUTES).build();
private static final int MAX_ATTEMPTS = 10;
private void handleToken(HandlerContext ctx) {
String ip = ctx.getRemoteAddress();
int attempts = Optional.ofNullable(FAILED_ATTEMPTS.getIfPresent(ip)).orElse(0);
if (attempts >= MAX_ATTEMPTS) {
throw new TooManyRequestsException("Rate limit exceeded");
}
// ... existing auth logic
// On failure: FAILED_ATTEMPTS.put(ip, attempts + 1)
}Blast Radius
ecosystem impact- 6 maven packages depend on org.yamcs:yamcs-core (6 direct, 0 indirect)
Ecosystem-wide dependent count for version 5.12.7.
Articles & Coverage 1
Executive ViewAI
Yamcs mission control systems before version 5.12.7 lack brute-force protection on the authentication endpoint, and publicly available exploit code exists, enabling unauthenticated attackers to conduct unlimited password-guessing attacks. While real-world exploitation probability is low (0.1%), successful compromise would grant unauthorized access to mission-critical systems. Organizations running Yamcs should prioritize patching to prevent potential operational disruption.
Apply vendor patch: Yamcs 5.12.7 or later. Interim controls if immediate patching is not possible: WAF or reverse proxy rate limiting on POST /auth/token endpoint (5 requests per IP per second); network-based access restrictions to authentication endpoint; enforcement of strong password policies and multi-factor authentication if supported.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
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
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
EUVD-2026-44956
GHSA-w5r6-mcgq-7pq4
NVD
CVE.org
EPSS
Exploit-DB
VulDB