CVE: CVE-2026-92289
Продукт: Ubuntu
Дата публикации: 25.09.2026
Критичность: CRITICAL
CVSS: 9.1 (3.1)
EPSS: нет данных; процентиль нет данных
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-92289 затрагивает пакет lemonldap-ng в дистрибутивах Ubuntu. Она позволяет обходить механизм PKCE для публичных Relying Party, когда клиентский секрет не проверяется при обмене авторизационным кодом на токены. В результате перехватчик кода может получить access, ID и refresh token пользователя без корректного PKCE-проверки.
Основные характеристики
Риск связан с нарушением проверки PKCE в Lemonldap:
- Тип ошибки: CWE-1390 — Security Feature Bypass
- CVSS v3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N(9.1, CRITICAL)
- Условие атаки: наличие публичного Relying Party в режиме "PKCE or secret" и перехват авторизационного кода
- Факт эксплуатации: не подтверждён доступными официальными источниками
- EPSS: данные отсутствуют
Какие продукты и версии затронуты
В Ubuntu затронут пакет
lemonldap-ng во всех указанных версиях дистрибутива.- Ubuntu 16.04 LTS:
lemonldap-ng1.4.6-3 и связанные Perl-пакеты:liblemonldap-ng-common-perl,liblemonldap-ng-conf-perl,liblemonldap-ng-handler-perl,liblemonldap-ng-manager-perl,liblemonldap-ng-portal-perl
- Ubuntu 18.04 LTS:
lemonldap-ng1.9.16-2 и связанные пакеты:lemonldap-ng-fastcgi-server,lemonldap-ng-handler,liblemonldap-ng-common-perl,liblemonldap-ng-handler-perl,liblemonldap-ng-manager-perl,liblemonldap-ng-portal-perl
- Ubuntu 20.04 LTS:
lemonldap-ng2.0.7+ds-2 и связанные пакеты:lemonldap-ng-fastcgi-server,lemonldap-ng-handler,lemonldap-ng-uwsgi-app,liblemonldap-ng-common-perl,liblemonldap-ng-handler-perl,liblemonldap-ng-manager-perl,liblemonldap-ng-portal-perl
- Ubuntu 22.04 LTS:
lemonldap-ng2.0.13+ds-3ubuntu1 и связанные пакеты:lemonldap-ng-fastcgi-server,lemonldap-ng-handler,lemonldap-ng-uwsgi-app,liblemonldap-ng-common-perl,liblemonldap-ng-handler-perl,liblemonldap-ng-manager-perl,liblemonldap-ng-portal-perl
- Ubuntu 24.04 LTS:
lemonldap-ng2.18.2+ds-1 и связанные пакеты:lemonldap-ng-fastcgi-server,lemonldap-ng-handler,lemonldap-ng-uwsgi-app,liblemonldap-ng-common-perl,liblemonldap-ng-handler-perl,liblemonldap-ng-manager-perl,liblemonldap-ng-portal-perl,liblemonldap-ng-ssoaas-apache-client-perl
- Ubuntu 26.04 LTS:
lemonldap-ng2.22.2+ds-1 и связанные пакеты:lemonldap-ng-fastcgi-server,lemonldap-ng-handler,lemonldap-ng-uwsgi-app,liblemonldap-ng-common-perl,liblemonldap-ng-handler-perl,liblemonldap-ng-manager-perl,liblemonldap-ng-portal-perl,liblemonldap-ng-ssoaas-apache-client-perl
Причина уязвимости
Ошибка находится в функции
checkEndPointAuthenticationCredentials внутри Lemonldap:Для Relying Party, помеченного как public, функция пропускает сравнение client secret и возвращает метод аутентификации, выведенный из запроса. В режиме "PKCE or secret" это означает, что любой Basic или form credential может удовлетворить ветку проверки секрета.
Функция
validatePKCEChallenge проходит успешно, если в запросе нет ни challenge, ни verifier. При этом авторизационный endpoint выдаёт код даже при отсутствии code_challenge, а функция token() принимает обмен, если для вызывающего был сохранён challenge или возвращён метод аутентификации.PKCE-механизм не выполняет свою защитную роль: код можно обменять на токены без корректного verifier.
Как работает атака
Атака строится на перехвате авторизационного кода, выданного публичному Relying Party.
Пользователь проходит аутентификацию в IdP и получает authorization code. Если код перехвачен, атакующий обращается к token endpoint с этим кодом, client_id Relying Party и произвольным secret.
Из-за ошибки в
checkEndPointAuthenticationCredentials сервер не требует совпадения secret. Из-за ошибки в validatePKCEChallenge отсутствие verifier не блокирует обмен. Сервер выдаёт access token, ID token и refresh token пользователя.Динамическая регистрация клиентов создаёт Relying Party в режиме "PKCE or secret", что расширяет поверхность атаки.
Условия успешной эксплуатации
Для успешной эксплуатации необходимы следующие условия:
- В Ubuntu установлен пакет
lemonldap-ngиз затронутых версий.
- На сервисе настроен публичный Relying Party в режиме "PKCE or secret".
- Параметр
oidcRPMetaDataOptionsRequirePKCEустановлен в значение 2.
- Атакующий способен перехватить авторизационный код, выданный пользователю.
- У атакующего известен client_id Relying Party.
- Сервер не применяет дополнительные механизмы защиты, компенсирующие отсутствие проверки PKCE.
Возможный сценарий атаки
Сценарий предполагает, что пользователь входит в корпоративное приложение через SSO на базе Lemonldap::NG.
После успешной аутентификации IdP возвращает authorization code. Если код перехватывается — например, при небезопасном хранении в браузере или перехвате сетевого потока — атакующий использует его для обмена на токены.
Атакующий отправляет запрос к token endpoint с client_id публичного Relying Party и произвольным secret. Сервер не проверяет secret для public-клиента и не требует verifier, поэтому выдаёт access, ID и refresh token пользователя.
Полученные токены позволяют атакующему действовать от имени пользователя в рамках разрешённых прав IdP и связанных приложений.
Есть ли публичный эксплойт
Доступные официальные источники не содержат подтверждённого публичного эксплойта, PoC или зафиксированной эксплуатации.
Отсутствуют данные о конкретных атаках, используемых в реальных инцидентах или распространённых инструментах. Отсутствие сведений в источниках не означает, что эксплуатация невозможна; оно означает только, что подтверждённые публичные примеры не представлены в предоставленных данных.
Признаки эксплуатации
Специфичные IOC для CVE-2026-92289 не подтверждены доступными официальными источниками.
Ниже приведены общие точки контроля, которые не являются специфичными признаками именно этой уязвимости:
- Внезапное увеличение количества запросов к token endpoint с одним и тем же client_id.
- Обмен авторизационными кодами из разных пользовательских сессий на одном клиенте.
- Использование refresh token после истечения срока действия или вне ожидаемого контекста.
- Запросы к IdP от IP-адресов, не соответствующих обычным паттернам пользователей.
- Появление новых Relying Party через динамическую регистрацию без соответствующего административного действия.
Как обнаружить атаку
Для обнаружения подозрительной активности вокруг Lemonldap::NG рекомендуется контролировать следующие области:
- Журналы IdP: фиксация выдаваемых authorization code, их времени жизни и клиентов, к которым они привязаны.
- Token endpoint: логирование всех обменов кодов на токены, включая client_id, presence/absence verifier и тип credentials.
- Relying Party registry: мониторинг новых клиентов, созданных через динамическую регистрацию, особенно с режимом "PKCE or secret".
- Сетевой трафик: отслеживание аномальных запросов к OAuth/OIDC эндпоинтам, включая повторное использование кодов и нестандартные значения secret.
- Логирование Perl-приложений: если доступно, анализ вызовов
checkEndPointAuthenticationCredentialsиvalidatePKCEChallengeдля выявления обхода проверок.
Как проверить свою версию
Для проверки версии Ubuntu и пакета
lemonldap-ng используйте следующие команды:
Bash:
cat /etc/os-release
uname -r
apt-cache policy <имя-пакета>
ubuntu-security-status
Замените
<имя-пакета> на имя проверяемого пакета, например lemonldap-ng. Команда apt-cache policy покажет установленную версию и доступные обновления в репозиториях Ubuntu. Команда ubuntu-security-status перечисляет пакеты с известными уязвимостями, для которых доступны исправления.Исправление
Исправление доступно в версии Lemonldap:
Для Ubuntu:
- Обновите пакет
lemonldap-ngдо последней доступной версии из официального репозитория Ubuntu.
- Проверьте наличие обновлений через
apt-get update && apt-get upgradeили аналогичный механизм обновления системы.
- После обновления подтвердите, что версия пакета соответствует исправленной.
Если обновление не возможно немедленно, рассмотрите временные меры из раздела «Временные меры защиты».
Временные меры защиты
Пока обновление не применено, можно снизить риск следующим образом:
- Ограничить доступ к IdP: использовать VPN или сетевые правила для доступа к авторизационным эндпоинтам.
- Короткие жизни токенов: уменьшить срок действия access и refresh token до минимально необходимого.
- Мониторинг кодов: логировать выдачу authorization code и отслеживать их использование вне ожидаемых сессий.
- Ограничение динамической регистрации: если бизнес-логика позволяет, отключить или ограничить создание новых Relying Party в режиме "PKCE or secret".
- Сетевая сегментация: изолировать сервис Lemonldap::NG от внешних сетей и ограничить доступ к нему только из доверенных подсетей.
Как проверить устранение уязвимости
После обновления проверьте:
Bash:
apt-cache policy lemonldap-ng
Убедитесь, что установленная версия не ниже исправленной. Для Ubuntu 24.04 LTS и выше обновлённая версия должна соответствовать дистрибутивному пакету с исправлением CVE-2026-92289.
Дополнительно:
- Проверьте, что
ubuntu-security-statusбольше не показывает уязвимость для пакетаlemonldap-ng.
- Проведите функциональную проверку OAuth/OIDC сценариев: выдача кода, обмен на токены, использование refresh token.
- Если возможно, выполните тест PKCE с корректным verifier и без него, чтобы убедиться, что сервер требует verifier для non-public клиентов.
Вывод
CVE-2026-92289 представляет высокий риск для систем Ubuntu с установленным пакетом
lemonldap-ng.Уязвимость позволяет обход PKCE для публичных Relying Party, что ведёт к несанкционированному получению токенов пользователя при перехвате авторизационного кода. Критичность определяется отсутствием необходимости прав доступа и возможностью получения чувствительных данных.
Приоритетом должно быть обновление пакета до исправленной версии. Если обновление отложено, необходимо применить временные меры: ограничить доступ к IdP, сократить жизнь токенов и усилить мониторинг OAuth-трафика.
Официальные источники
История обновлений статьи
- 29.09.2026 — Опубликована первая версия материала.
