YAMCS Unauthorized User Enumeration via IAM API (CVE-2026-44595)
by Daniel Miranda Barcelona (ex-cal1bur) · 2026-07-05
- Severity
- Medium
- CVE
- CVE-2026-44595 / GHSA-p2rj-mrmc-9w29
- 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-44595 / GHSA-p2rj-mrmc-9w29 |
| Category | web |
| Severity | Medium |
| CVSS Score | 4.3 |
| Status | PoC |
| Tags | yamcs, iam, missing-authorization, user-enumeration, broken-access-control, api |
| Related | CVE-2026-44596 |
Affected Target
| Field | Value |
|---|---|
| Software / System | yamcs-core (YAMCS mission control software) |
| Versions Affected | yamcs-core < 5.12.7 |
| Language / Platform | Java (target), Python 3 (PoC) |
| Authentication Required | Yes (any authenticated, even zero-privilege, user) |
| Network Access Required | Yes |
Summary
The YAMCS IAM REST API endpoints (listUsers, getUser, listGroups, getGroup) fail to enforce the required SystemPrivilege.ControlAccess authorization check. Any authenticated user, including one with no assigned privileges, can call these endpoints directly and enumerate every user account on the instance, including superuser status, group memberships, and identity provider metadata. The included PoC script demonstrates this by logging in as a low-privilege account and successfully listing all users.
Vulnerability Details
Root Cause
The IAM API handlers for GET /api/iam/users, GET /api/iam/users/{name}, GET /api/iam/groups, and GET /api/iam/groups/{name} omit the SystemPrivilege.ControlAccess check that should gate access to account/group management data. This is a classic CWE-862 (Missing Authorization) — the endpoints authenticate the caller but do not authorize the specific action against the caller’s privileges.
Attack Vector
- Attacker obtains any valid, even unprivileged, YAMCS account (self-registration, low-trust operator account, etc.).
- Attacker authenticates and requests
GET /api/iam/users(and related group endpoints). - The API returns the full list of usernames, superuser flags, and group memberships without checking the caller’s
ControlAccessprivilege. - Attacker uses this information to identify high-value (superuser) targets for further attacks such as credential stuffing or the companion brute-force vulnerability (CVE-2026-44596).
Impact
Full disclosure of the instance’s user and group topology to any authenticated user, enabling targeted attacks against superuser/operator accounts. YAMCS is used as mission control software in space-mission and ground-station deployments, so exposure of privileged accounts materially increases attack surface against safety/operationally critical systems.
Environment / Lab Setup
Target: yamcs-core < 5.12.7 instance exposing the REST API on e.g. http://localhost:8090
Attacker tooling: Python 3 + `requests` library
Auth: any valid low-privilege account (e.g. testuser/testpassword)
Proof of Concept
PoC Script
See
poc.pyin this folder.
| |
Running this against a vulnerable instance logs in as the low-privilege testuser account and successfully calls the IAM listUsers endpoint, printing every account on the instance (including superuser status) despite the caller having no administrative privileges.
Detection & Indicators of Compromise
- Access logs showing non-admin/low-privilege accounts calling
GET /api/iam/users, /api/iam/users/{name}, /api/iam/groups, /api/iam/groups/{name}.
- Repeated or bulk enumeration requests to IAM endpoints from a single session/account
shortly followed by authentication attempts against the disclosed usernames.
Signs of compromise:
- Low-privilege accounts issuing requests to IAM listing/detail endpoints.
- A spike in authentication attempts against usernames that were only ever disclosed via the IAM API.
Remediation
| Action | Detail |
|---|---|
| Primary fix | Upgrade to yamcs-core >= 5.12.7, which enforces the SystemPrivilege.ControlAccess check on all IAM listing/detail endpoints. |
| Interim mitigation | Restrict network access to the YAMCS API to trusted operators only, and monitor/alert on IAM endpoint calls from non-administrative accounts until patched. |
References
Notes
Mirrored from https://github.com/ex-cal1bur/CVE-2026-44595 on 2026-07-05.
| |