CVE-2026-92289 в Ubuntu: PKCE bypass, затронутые версии и проверка состояния

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:🆖:Portal для публичных Relying Party. Атакующий, получивший авторизационный код, может обменять его на токены пользователя, передав произвольный secret вместо ожидаемого verifier.

  • Тип ошибки: 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-ng 1.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-ng 1.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-ng 2.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-ng 2.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-ng 2.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-ng 2.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:🆖:Portal.

Для 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:🆖:Portal 2.23.4 и выше.

Для 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-трафика.

Официальные источники​


  1. NVD — CVE-2026-92289
  2. Ubuntu OSV — CVE-2026-92289

История обновлений статьи​


  • 29.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ