YAMCS Missing Rate Limiting on Authentication Endpoint (CVE-2026-44596)
by Daniel Miranda Barcelona (ex-cal1bur) · 2026-07-05
- Severity
- Medium
- CVE
- CVE-2026-44596 / GHSA-w5r6-mcgq-7pq4
- Category
- web
- Affected product
- yamcs-core (YAMCS mission control software)
- Affected versions
- yamcs-core < 5.12.7
- Disclosed
- 2026-07-05
- Patch status
- patched
References
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-05 |
| Author / Researcher | Daniel Miranda Barcelona (ex-cal1bur) |
| CVE / Advisory | CVE-2026-44596 / GHSA-w5r6-mcgq-7pq4 |
| Category | web |
| Severity | Medium |
| CVSS Score | 5.3 |
| Status | PoC |
| Tags | yamcs, brute-force, rate-limiting, cwe-307, authentication, oauth-token |
| Related | CVE-2026-44595 |
Affected Target
| Field | Value |
|---|---|
| Software / System | yamcs-core (YAMCS mission control software) |
| Versions Affected | yamcs-core < 5.12.7 |
| Language / Platform | Java (target), Bash (PoC) |
| Authentication Required | No (unauthenticated attacker targets the login endpoint) |
| Network Access Required | Yes |
Summary
The POST /auth/token authentication endpoint in yamcs-core accepts unlimited grant_type=password login attempts with no rate limiting, account lockout, or failed-attempt throttling. An unauthenticated remote attacker with network access can brute-force credentials for any known username at full network speed, since the endpoint always responds with HTTP 401 for invalid credentials and never throttles or blocks with HTTP 429.
Vulnerability Details
Root Cause
CWE-307 (Improper Restriction of Excessive Authentication Attempts): the /auth/token handler performs no per-account or per-source tracking of failed login attempts, and applies no delay, lockout, or CAPTCHA/backoff mechanism.
Attack Vector
- Attacker identifies a valid username (optionally obtained via the companion IAM enumeration bug, CVE-2026-44595).
- Attacker scripts repeated
POST /auth/tokenrequests withgrant_type=passwordand varying password guesses against that username. - The server returns HTTP 401 indefinitely with no throttling, allowing the attacker to iterate through a password list (or full brute force) at network speed.
- A successful guess returns a valid access token, granting the attacker the compromised account’s privileges.
Impact
Unauthenticated attackers with network access to a YAMCS instance can brute-force any known account’s password without restriction. Combined with the IAM enumeration vulnerability, an attacker can first identify superuser accounts and then brute-force them directly. YAMCS is deployed as mission control software for space missions (e.g. ESA’s OPS-SAT) and ground stations, making credential compromise operationally significant.
Environment / Lab Setup
Target: yamcs-core < 5.12.7 instance exposing the REST API on e.g. http://localhost:8090
Attacker tooling: Bash + curl (poc.sh)
Proof of Concept
PoC Script
See
poc.shin this folder.
| |
Running this fires 20 sequential authentication attempts against the operator account with invalid passwords; on a vulnerable instance every attempt returns HTTP 401 with no throttling or lockout, confirming the absence of rate limiting.
Detection & Indicators of Compromise
- Auth logs showing many consecutive HTTP 401 responses from `/auth/token`
for the same username or source IP in a short window.
- Absence of HTTP 429 responses despite high request volume against the
authentication endpoint.
Signs of compromise:
- Bursts of failed login attempts against
/auth/tokenfrom a single IP or against a single username. - A successful login immediately following a long run of failed attempts against the same account.
Remediation
| Action | Detail |
|---|---|
| Primary fix | Upgrade to yamcs-core >= 5.12.7, which adds rate limiting / throttling to the authentication endpoint. |
| Interim mitigation | Place the YAMCS API behind a reverse proxy or WAF enforcing rate limiting and account lockout on /auth/token, and monitor for high-volume failed login attempts. |
References
Notes
Mirrored from https://github.com/ex-cal1bur/CVE-2026-44596 on 2026-07-05.
| |