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:
Какие продукты и версии затронуты
В 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:
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", что позволяет такой сессии получить доступ. Развертывания, которые проверяют пользователя или требуют определенный уровень аутентификации, менее подвержены риску.
Условия успешной эксплуатации
Для успешной эксплуатации необходимо выполнение следующих условий:
- В системе Ubuntu установлен пакет lemonldap-ng из списка уязвимых версий.
- В конфигурации Lemonldap::NG включен модуль аутентификации GitHub или LinkedIn.
- Используется конфигурация доступа по умолчанию (default => accept) или аналогичная, которая не требует проверки наличия пользователя или уровня аутентификации в сессии.
- Злоумышленник имеет доступ к конечной точке аутентификации GitHub или LinkedIn, чтобы инициировать процесс и получить параметр state.
Возможный сценарий атаки
Сценарий атаки выглядит следующим образом:
- Злоумышленник инициирует запрос к конечной точке аутентификации GitHub или LinkedIn на сервере Lemonldap::NG.
- Сервер создает сессию state и возвращает URL перенаправления, содержащий идентификатор сессии в параметре state.
- Злоумышленник извлекает идентификатор сессии из URL.
- Злоумышленник устанавливает этот идентификатор в качестве cookie сессии в своем браузере или клиенте.
- При последующем запросе к защищенному ресурсу сервер принимает cookie как действительную SSO-сессию.
- Если правила доступа не требуют проверки _user или authenticationLevel, злоумышленник получает доступ к ресурсу без аутентификации.
Есть ли публичный эксплойт
В доступных источниках нет подтвержденных данных о наличии публичных эксплойтов (PoC) или фактах эксплуатации в реальных атаках. Уязвимость описана технически, но статус публичного эксплойта не определен. Отсутствие информации не означает отсутствие эксплойта, однако на момент публикации данных официальных подтверждений эксплуатации нет.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для CVE-2026-19349 не опубликованы. Общие точки контроля включают:
- Анализ журналов доступа Lemonldap::NG на наличие сессий, созданных через конечные точки GitHub или LinkedIn, но не связанных с успешной аутентификацией пользователя.
- Проверка сессий, которые не содержат данных _user или authenticationLevel, но имеют статус активной SSO-сессии.
- Мониторинг аномального трафика к конечным точкам OAuth2.
Эти признаки неспецифичны и могут быть вызваны легитимной активностью или другими ошибками конфигурации.
Как обнаружить атаку
Для обнаружения потенциальной эксплуатации или наличия уязвимой конфигурации рекомендуется:
- Проверить версию установленного пакета lemonldap-ng.
- Изучить конфигурацию Lemonldap::NG на наличие включенных модулей GitHub или LinkedIn.
- Проверить правила доступа (access rules) на предмет использования "default => accept" без дополнительных проверок пользователя.
- Анализировать журналы сессий на наличие аномалий, описанных в разделе 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) для применения изменений.
Временные меры защиты
Если немедленное обновление невозможно, рассмотрите следующие временные меры:
- Отключите модули аутентификации GitHub и LinkedIn в конфигурации Lemonldap::NG, если они не используются.
- Измените правила доступа (access rules), чтобы они требовали проверки _user или authenticationLevel, избегая использования "default => accept" для виртуальных хостов.
- Ограничьте доступ к конечным точкам аутентификации на уровне файрвола или веб-сервера, если это возможно.
Эти меры снижают вероятность успешной эксплуатации, но не устраняют уязвимость полностью.
Как проверить устранение уязвимости
После обновления проверьте версию пакета:
Bash:
apt-cache policy lemonldap-ng
Убедитесь, что установленная версия соответствует исправленной. Проверьте журналы Lemonldap::NG на отсутствие ошибок после перезапуска служб. Убедитесь, что конфигурация доступа требует проверки пользователя или уровня аутентификации, если вы внесли изменения в правила доступа.
Вывод
CVE-2026-19349 представляет собой уязвимость обхода аутентификации в Lemonldap::NG, специфичную для бэкендов GitHub и LinkedIn. Риск классифицирован как средний в Ubuntu. Уязвимость эксплуатирована через некорректное хранение параметра state как SSO-сессии. Обновление пакета lemonldap-ng является основным методом защиты. Временные меры включают отключение уязвимых модулей и ужесточение правил доступа. Администраторам следует проверить версии пакетов и конфигурацию на всех затронутых системах Ubuntu.
Официальные источники
История обновлений статьи
- 17.08.2026 — Опубликована первая версия материала.
