CVE-2026-19349 в Ubuntu: обход аутентификации в Lemonldap::NG

CVE: CVE-2026-19349
Продукт: Ubuntu
Дата публикации: 16.08.2026
Критичность: не определена
CVSS: нет данных
EPSS: нет данных; процентиль нет данных
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


Уязвимость CVE-2026-19349 позволяет обходить аутентификацию в Lemonldap::NG при использовании бэкендов GitHub или LinkedIn. Ошибка возникает из-за некорректного сохранения параметра OAuth2 state как обычной SSO-сессии. Ubuntu классифицирует риск как средний. Статья описывает механизм, затронутые версии дистрибутива и методы проверки.

Основные характеристики​


CVE-2026-19349 затрагивает компонент Lemonldap:🆖:Portal в версиях от 2.0.0 до 2.16.9, от 2.17.0 до 2.21.5 и от 2.22.0 до 2.23.3. Уязвимость относится к классам CWE-305 (незащищенные учетные данные) и CWE-628 (небезопасное хранение учетных данных). В Ubuntu severity установлена на уровень medium. Проблема проявляется только при включенных модулях аутентификации GitHub или LinkedIn. Идентификатор сессии, предназначенный для параметра state протокола OAuth2, сохраняется в глобальном хранилище как обычная SSO-сессия. Это позволяет любому посетителю, получившему этот идентификатор, использовать его как cookie сессии и получить доступ без прохождения аутентификации.

Какие продукты и версии затронуты​


В Ubuntu уязвимы следующие LTS-релизы и версии пакетов lemonldap-ng:

  • Ubuntu 16.04 LTS (xenial): версия 1.4.6-3
  • Ubuntu 18.04 LTS (bionic): версия 1.9.16-2
  • Ubuntu 20.04 LTS (focal): версия 2.0.7+ds-2
  • Ubuntu 22.04 LTS (jammy): версия 2.0.13+ds-3ubuntu1
  • Ubuntu 24.04 LTS (noble): версия 2.18.2+ds-1
  • Ubuntu 26.04 LTS (resolute): версия 2.22.2+ds-1

Затронуты бинарные пакеты: lemonldap-ng, 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 (в зависимости от версии дистрибутива).

Причина уязвимости​


Причина уязвимости кроется в функции extractFormInfo() в модуле Lemonldap:🆖:Portal. Перед перенаправлением пользователя к провайдеру удостоверений (GitHub или LinkedIn) функция создает сессию для параметра state. Вызов выполняется позиционно: getApacheSession( undef, 1, 0, 'GitHubState' ). Функция getApacheSession() ожидает идентификатор сессии, за которым следует именованный хеш аргументов. Из-за позиционного вызова хвостовые аргументы интерпретируются как хеш, параметр kind получает значение по умолчанию SSO, и состояние записывается в глобальное хранилище сессий как регулярная SSO-сессия. Идентификатор этой сессии передается неаутентифицированному посетителю в качестве параметра state в URL перенаправления.

Как работает атака​


Механика атаки основана на повторном использовании идентификатора сессии. Любой посетитель, который достигает конечной точки GitHub или LinkedIn в Lemonldap::NG, получает идентификатор сессии в параметре state URL-адреса перенаправления. Поскольку этот идентификатор соответствует действительной SSO-сессии в хранилище, злоумышленник может воспроизвести его, установив его в качестве cookie сессии. В результате злоумышленник получает действительную SSO-сессию без прохождения аутентификации. Сессия не содержит данных пользователя (_user) или уровня аутентификации (authenticationLevel). В конфигурации по умолчанию (bootstrap configuration) виртуальные хосты имеют правило доступа "default => accept", что позволяет такой сессии получить доступ. Развертывания, которые проверяют пользователя или требуют определенный уровень аутентификации, менее подвержены риску.

Условия успешной эксплуатации​


Для успешной эксплуатации необходимо выполнение следующих условий:

  1. В системе Ubuntu установлен пакет lemonldap-ng из списка уязвимых версий.
  2. В конфигурации Lemonldap::NG включен модуль аутентификации GitHub или LinkedIn.
  3. Используется конфигурация доступа по умолчанию (default => accept) или аналогичная, которая не требует проверки наличия пользователя или уровня аутентификации в сессии.
  4. Злоумышленник имеет доступ к конечной точке аутентификации GitHub или LinkedIn, чтобы инициировать процесс и получить параметр state.

Возможный сценарий атаки​


Сценарий атаки выглядит следующим образом:

  1. Злоумышленник инициирует запрос к конечной точке аутентификации GitHub или LinkedIn на сервере Lemonldap::NG.
  2. Сервер создает сессию state и возвращает URL перенаправления, содержащий идентификатор сессии в параметре state.
  3. Злоумышленник извлекает идентификатор сессии из URL.
  4. Злоумышленник устанавливает этот идентификатор в качестве cookie сессии в своем браузере или клиенте.
  5. При последующем запросе к защищенному ресурсу сервер принимает cookie как действительную SSO-сессию.
  6. Если правила доступа не требуют проверки _user или authenticationLevel, злоумышленник получает доступ к ресурсу без аутентификации.

Есть ли публичный эксплойт​


В доступных источниках нет подтвержденных данных о наличии публичных эксплойтов (PoC) или фактах эксплуатации в реальных атаках. Уязвимость описана технически, но статус публичного эксплойта не определен. Отсутствие информации не означает отсутствие эксплойта, однако на момент публикации данных официальных подтверждений эксплуатации нет.

Признаки эксплуатации​


Специфичные индикаторы компрометации (IOC) для CVE-2026-19349 не опубликованы. Общие точки контроля включают:

  • Анализ журналов доступа Lemonldap::NG на наличие сессий, созданных через конечные точки GitHub или LinkedIn, но не связанных с успешной аутентификацией пользователя.
  • Проверка сессий, которые не содержат данных _user или authenticationLevel, но имеют статус активной SSO-сессии.
  • Мониторинг аномального трафика к конечным точкам OAuth2.
    Эти признаки неспецифичны и могут быть вызваны легитимной активностью или другими ошибками конфигурации.

Как обнаружить атаку​


Для обнаружения потенциальной эксплуатации или наличия уязвимой конфигурации рекомендуется:

  1. Проверить версию установленного пакета lemonldap-ng.
  2. Изучить конфигурацию Lemonldap::NG на наличие включенных модулей GitHub или LinkedIn.
  3. Проверить правила доступа (access rules) на предмет использования "default => accept" без дополнительных проверок пользователя.
  4. Анализировать журналы сессий на наличие аномалий, описанных в разделе IOC.

Как проверить свою версию​


Для проверки версии пакета lemonldap-ng в Ubuntu используйте следующие команды:

Bash:
apt-cache policy lemonldap-ng

Эта команда покажет установленную версию и доступные обновления. Также можно проверить версию системы:

Bash:
cat /etc/os-release
uname -r

Для комплексной проверки статуса безопасности:

Bash:
ubuntu-security-status

Замените <имя-пакета> на lemonldap-ng, если используете другие инструменты проверки.

Исправление​


Основной метод устранения уязвимости — обновление пакета lemonldap-ng до исправленной версии. В Ubuntu доступны обновления безопасности для всех затронутых LTS-релизов. Выполните обновление системы:

Bash:
sudo apt update
sudo apt upgrade lemonldap-ng

Убедитесь, что версия пакета соответствует или превышает исправленную версию для вашего релиза Ubuntu. После обновления перезапустите службы Lemonldap::NG (например, apache2 или uwsgi) для применения изменений.

Временные меры защиты​


Если немедленное обновление невозможно, рассмотрите следующие временные меры:

  1. Отключите модули аутентификации GitHub и LinkedIn в конфигурации Lemonldap::NG, если они не используются.
  2. Измените правила доступа (access rules), чтобы они требовали проверки _user или authenticationLevel, избегая использования "default => accept" для виртуальных хостов.
  3. Ограничьте доступ к конечным точкам аутентификации на уровне файрвола или веб-сервера, если это возможно.
    Эти меры снижают вероятность успешной эксплуатации, но не устраняют уязвимость полностью.

Как проверить устранение уязвимости​


После обновления проверьте версию пакета:

Bash:
apt-cache policy lemonldap-ng

Убедитесь, что установленная версия соответствует исправленной. Проверьте журналы Lemonldap::NG на отсутствие ошибок после перезапуска служб. Убедитесь, что конфигурация доступа требует проверки пользователя или уровня аутентификации, если вы внесли изменения в правила доступа.

Вывод​


CVE-2026-19349 представляет собой уязвимость обхода аутентификации в Lemonldap::NG, специфичную для бэкендов GitHub и LinkedIn. Риск классифицирован как средний в Ubuntu. Уязвимость эксплуатирована через некорректное хранение параметра state как SSO-сессии. Обновление пакета lemonldap-ng является основным методом защиты. Временные меры включают отключение уязвимых модулей и ужесточение правил доступа. Администраторам следует проверить версии пакетов и конфигурацию на всех затронутых системах Ubuntu.

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


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

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


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