Skip to main content

Yamcs CVE-2026-44596

| EUVDEUVD-2026-44956 CRITICAL
Improper Restriction of Excessive Authentication Attempts (CWE-307)
2026-05-27 https://github.com/yamcs/yamcs GHSA-w5r6-mcgq-7pq4
9.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
4.8 MEDIUM

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.

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

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

6
Analysis Updated
Jul 17, 2026 - 18:59 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Jul 17, 2026 - 18:52 vuln.today
cvss_changed
Severity Changed
Jul 17, 2026 - 18:52 NVD
MEDIUM CRITICAL
CVSS changed
Jul 17, 2026 - 18:52 NVD
6.5 (MEDIUM) 9.8 (CRITICAL)
Source Code Evidence Fetched
May 27, 2026 - 00:30 vuln.today
Analysis Generated
May 27, 2026 - 00:30 vuln.today

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 6 maven packages depend on org.yamcs:yamcs-core (6 direct, 0 indirect)

Ecosystem-wide dependent count for version 5.12.7.

DescriptionNVD

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:

java
// 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

bash
# 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 ever

Confirmed: 20 attempts in 0.07 seconds, no rate limiting enforced.

Fix

Implement DRF-style throttling on /auth/token:

java
// 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)
}

AnalysisAI

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.

Technical ContextAI

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.

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.

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

Share

CVE-2026-44596 vulnerability details – vuln.today

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