CVE: CVE-2026-78030
Продукт: Ubuntu
Дата публикации: 19.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,73%; процентиль 52,66%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В пакетах libdbi-perl для Ubuntu до исправления CVE-2026-78030 параметры dbm_type и dbm_mldbm передаются в require без проверки. Запрос с вредоносным DSN или параметром выбора хранилища может заставить Perl загрузить произвольный файл как модуль. Риск актуален для сервисов, которые принимают внешние данные в строках подключения DBI.
Основные характеристики
Уязвимость позволяет загрузить и выполнить произвольный Perl-код через параметры подключения DBD:
- Тип ошибки: CWE-470 — загрузка произвольного кода через недоверенные параметры.
- CVSS v3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, оценка 9.8, критическая.
- Вектор атаки: удалённый доступ через строку подключения или параметр выбора storage backend.
- Факт эксплуатации: в предоставленных источниках нет подтверждения активной эксплуатации.
- EPSS: 0,73% (доля 0.00725), процентиль 52,66%.
Какие продукты и версии затронуты
В Ubuntu затронут пакет
libdbi-perl в следующих версиях:- Ubuntu:Pro:14.04:LTS —
libdbi-perl1.630-1ubuntu0.1~esm6
- Ubuntu:Pro:16.04:LTS —
libdbi-perl1.634-1ubuntu0.2+esm2
- Ubuntu:Pro:18.04:LTS —
libdbi-perl1.640-1ubuntu0.3+esm1
- Ubuntu:Pro:20.04:LTS —
libdbi-perl1.643-1ubuntu0.1+esm1
- Ubuntu:22.04:LTS —
libdbi-perl1.643-3ubuntu0.1
- Ubuntu:24.04:LTS —
libdbi-perl1.643-4ubuntu0.1
- Ubuntu:26.04:LTS —
libdbi-perl1.647-1ubuntu0.26.04.1
Официальный список затронутых версий: Ubuntu OSV.
Причина уязвимости
DBD:
dbm_type и dbm_mldbm в функцию require без проверки того, что значение соответствует имени модуля.Функция
require воспринимает строку в виде пути как имя файла и не обращается к @INC. Таким образом, значение атрибута напрямую определяет файл, который Perl загружает и исполняет.Префикс
MLDBM::Serializer::, который DBD:dbm_mldbm, не является границей: только разделители :: заменяются на /, а символ / позволяет выйти из каталога сериализатора. Значение также присваивается переменной $MLDBM::Serializer, которую MLDBM загружает аналогичным способом при связывании таблицы.Как работает атака
Атакующий влияет на значение
dbm_type или dbm_mldbm через DSN, параметр выбора хранилища или любой другой вход, который попадает в строку подключения DBI.DBD:
require. Perl загружает указанный файл как модуль и выполняет код на уровне файла.Если приложение использует DBD::Gofer, атрибуты подключения передаются на серверную сторону. Если используется DBI::ProxyServer, проверяется только префикс драйвера в DSN, а не содержимое атрибутов.
В результате исполняется произвольный Perl-код из файла, который выбрал атакующий.
Условия успешной эксплуатации
Для успешной эксплуатации необходимы следующие условия:
- установлен пакет
libdbi-perlв уязвимой версии;
- приложение принимает внешний DSN или параметр выбора хранилища от недоверенного пользователя;
- значение попадает в атрибут
dbm_typeилиdbm_mldbm;
- нет дополнительной валидации значения на стороне приложения.
Локальный доступ к системе не требуется, если приложение доступно извне и передаёт данные в DBI.
Возможный сценарий атаки
Пользователь отправляет запрос с DSN вида
dbi:DBM:f_dir=/var/db;dbm_type=../../Untrusted.pm.Приложение передаёт этот DSN в
DBI->connect. DBD:dbm_type и передаёт его в require.Perl загружает файл
../../Untrusted.pm как модуль. Код внутри файла исполняется в контексте процесса приложения.Если приложение работает с правами пользователя, код выполняется с этими правами. Если приложение использует DBD::Gofer или DBI::ProxyServer, атака может быть направлена на серверную сторону.
Есть ли публичный эксплойт
В предоставленных источниках нет информации о публичном эксплойте.
- PoC: не подтверждён в источниках.
- Техническое описание: доступно в NVD и Ubuntu OSV, содержит пример DSN с параметром
dbm_type.
- Подтверждённая эксплуатация: нет сведений о реальных атаках или компрометациях.
Отсутствие информации об эксплойте не означает его отсутствие. Механика уязвимости позволяет загрузить произвольный файл через атрибуты подключения.
Признаки эксплуатации
Специфичных IOC для CVE-2026-78030 в источниках нет.
Неспецифичные точки контроля:
- неожиданные загрузки Perl-модулей из каталогов вне стандартного
@INC;
- вызовы
requireс путями, содержащими../или абсолютными путями;
- новые файлы в каталогах
/var/db,/tmp,/devили пользовательских каталогах;
- аномальная активность процесса Perl: создание соединений, чтение системных файлов, изменение конфигурации.
Эти признаки не являются подтверждёнными IOC и требуют контекста приложения.
Как обнаружить атаку
Для обнаружения атаки используйте следующие методы:
- аудит логики обработки DSN в приложениях на базе DBI;
- поиск вызовов
requireс нестандартными путями в Perl-коде;
- мониторинг создания файлов в каталогах, доступных приложению;
- анализ журналов процесса Perl на аномальные загрузки модулей.
Команды для проверки версии и конфигурации:
Bash:
cat /etc/os-release
uname -r
apt-cache policy <имя-пакета>
ubuntu-security-status
Замените
<имя-пакета> на libdbi-perl при проверке конкретного пакета.Как проверить свою версию
Проверьте версию установленного пакета и статус безопасности:
Bash:
cat /etc/os-release
uname -r
apt-cache policy libdbi-perl
ubuntu-security-status
Сравните версию с затронутыми версиями из Ubuntu OSV. Если пакет установлен в версии до исправления, требуется обновление.
Для проверки конкретного пакета используйте
apt-cache policy <имя-пакета>, заменив <имя-пакета> на имя пакета.Исправление
Обновите пакет
libdbi-perl до исправленной версии:
Bash:
sudo apt update
sudo apt upgrade libdbi-perl
После обновления проверьте версию и статус безопасности:
Bash:
apt-cache policy libdbi-perl
ubuntu-security-status
Если обновление не возможно, рассмотрите временные меры защиты.
Временные меры защиты
При невозможности немедленного обновления используйте следующие меры:
- ограничьте доступ к приложению, принимающему внешний DSN;
- валидируйте значение
dbm_typeиdbm_mldbmна стороне приложения до передачи в DBI;
- отключите использование DBD::Gofer или DBI::ProxyServer, если это возможно;
- ограничьте права процесса Perl: запуск с минимальными привилегиями, изоляция файловой системы.
Эти меры снижают риск, но не устраняют уязвимость полностью.
Как проверить устранение уязвимости
После обновления проверьте:
Bash:
apt-cache policy libdbi-perl
ubuntu-security-status
Убедитесь, что версия пакета соответствует исправленной версии из Ubuntu OSV.
Проверьте логи приложения на отсутствие аномальных загрузок модулей после обновления.
Тестирование: отправьте запрос с DSN, содержащим путь к тестовому файлу, и убедитесь, что файл загружается только в рамках ожидаемого поведения.
Вывод
CVE-2026-78030 позволяет загрузить произвольный Perl-код через параметры подключения DBI. Риск критический для приложений, принимающих внешний DSN или параметр выбора хранилища без валидации.
Обновление
libdbi-perl до версии 1.653 устраняет проблему. До обновления ограничьте доступ к приложению и валидируйте входные данные.Официальные источники
История обновлений статьи
- 24.09.2026 — Опубликована первая версия материала.
