CVE: CVE-2026-45699
Продукт: Ubuntu
Дата публикации: 14.08.2026
Критичность: HIGH
CVSS: 7.5 (3.1)
EPSS: 0,34%; процентиль 26,45%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-45699 затрагивает пакет netatalk в Ubuntu, позволяя вызвать переполнение стека в демоне afpd. Проблема возникает из-за целочисленного переполнения (underflow) при расчете размера буфера для путей, если файловая операция пересекает границу устройств. Статья описывает механизм уязвимости, затронутые версии Ubuntu и методы защиты.
Основные характеристики
CVE-2026-45699 классифицируется как уязвимость с высоким уровнем риска (CVSS 7.5) согласно NVD, однако в реестре Ubuntu ей присвоен уровень severity «medium». Уязвимость относится к категории CWE-191 (Integer Underflow) и приводит к переполнению буфера в стеке. Эпидемиологическая вероятность эксплуатации (EPSS) составляет 0.33%, что указывает на низкую вероятность использования в массовых атаках на текущий момент. Уязвимость затрагивает компонент afpd (Apple Filing Protocol daemon) в рамках пакета netatalk.
Какие продукты и версии затронуты
В Ubuntu уязвимость затрагивает пакет netatalk во всех поддерживаемых версиях, включая LTS-релизы и промежуточные версии. Затронутые экосистемы включают Ubuntu
Причина уязвимости
Причиной уязвимости является целочисленное переполнение (underflow) в функции copydir() демона afpd. Эта функция вызывается, когда файловая операция (например, переименование) пересекает границу устройства внутри общего AFP-томa, так как стандартная функция renameat() не может обработать такой сценарий. Функция copydir() пытается отслеживать доступное пространство в буфере, используя переменные srem и drem для путей источника и назначения. Из-за ошибки в арифметических вычислениях значения srem и drem переполняются и принимают значение SIZE_MAX. В результате проверки границ, сравнивающие эти значения с длиной имени файла (strlen(de->d_name)), всегда возвращают положительный результат, что позволяет функции strcpy() записывать данные за пределы выделенного стекового буфера.
Как работает атака
Атакующий должен иметь возможность инициировать файловую операцию (например, копирование или перемещение) внутри общего AFP-томa, которая пересекает границу между двумя различными файловыми системами (например, когда подкаталог общего тома является точкой монтирования другого устройства). При выполнении такой операции демон afpd вызывает функцию copydir(). Из-за ошибки в расчете оставшегося размера буфера, проверка безопасности отключается, и данные копируются в стек без ограничений, что приводит к переполнению буфера. Это может привести к выполнению произвольного кода или отказу в обслуживании.
Условия успешной эксплуатации
Для эксплуатации уязвимости необходимо наличие настроенного сервера Netatalk с общими томами, структура которых включает точки монтирования других файловых систем внутри общего каталога. Атакующий должен иметь доступ к AFP-протоколу и права на выполнение файловых операций в затронутом томе. Уязвимость не требует аутентификации на уровне операционной системы, но требует доступа к файловой системе через AFP.
Возможный сценарий атаки
Злоумышленник подключается к AFP-серверу и инициирует операцию перемещения файла или каталога из одного раздела общего тома в другой, где целевой каталог находится на смонтированном устройстве, отличном от основного тома. Демон afpd пытается обработать операцию, вызывая copydir(). Из-за переполнения целочисленного значения, проверка границ буфера игнорируется, и данные записываются за пределы выделенной памяти. В зависимости от защиты памяти (ASLR, DEP), это может привести к краху демона (DoS) или, в худшем случае, к выполнению кода с привилегиями процесса afpd.
Есть ли публичный эксплойт
В официальных источниках нет подтвержденных сведений о наличии публичных эксплойтов или PoC-кода, используемых в реальных атаках. Уязвимость была исправлена в версии Netatalk 4.4.3. Отсутствие публичных эксплойтов не гарантирует отсутствие интереса со стороны злоумышленников, особенно в средах с устаревшими версиями Ubuntu.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для CVE-2026-45699 не опубликованы. Общие признаки могут включать неожиданные перезапуски демона afpd, ошибки сегментации в журналах системы или аномальную активность файловой системы в общих AFP-томах. Эти признаки неспецифичны и могут быть вызваны другими причинами.
Как обнаружить атаку
Для обнаружения потенциальных попыток эксплуатации рекомендуется мониторить логи демона afpd и системные журналы (syslog) на предмет ошибок сегментации или аварийных остановок. Также полезно отслеживать аномальные файловые операции, особенно те, которые пересекают границы файловых систем внутри общих томов. Использование систем мониторинга целостности файлов может помочь выявить изменения в бинарных файлах netatalk.
Как проверить свою версию
Для проверки версии установленного пакета netatalk в Ubuntu используйте следующие команды:
Bash:
apt-cache policy netatalk
Эта команда покажет установленную версию и доступные обновления. Также можно проверить версию системы:
Bash:
cat /etc/os-release
uname -r
Для проверки статуса безопасности системы используйте:
Bash:
ubuntu-security-status
Исправление
Основным методом устранения уязвимости является обновление пакета netatalk до последней исправленной версии. В Ubuntu это делается через стандартный менеджер пакетов:
Bash:
sudo apt update
sudo apt upgrade netatalk
Для систем Ubuntu Pro (ESM) убедитесь, что подписка активна и обновления применяются:
Bash:
sudo pro enable esm-apps
sudo apt update
sudo apt upgrade netatalk
Убедитесь, что после обновления версия пакета соответствует исправленной версии, указанной в реестре Ubuntu для вашей версии ОС.
Временные меры защиты
В качестве временной меры, пока обновление недоступно, рекомендуется изменить структуру общих AFP-томов так, чтобы каждый том представлял собой единую файловую систему. Это означает, что ни один подкаталог общего тома не должен быть точкой монтирования для другой файловой системы. Это предотвратит вызов функции copydir() и, следовательно, эксплуатацию уязвимости. Однако это может ограничить функциональность сервера, если требуется использование нескольких устройств.
Как проверить устранение уязвимости
После обновления проверьте версию пакета netatalk:
Bash:
apt-cache policy netatalk
Убедитесь, что установленная версия соответствует или превышает версию, указанную в исправлении для вашей версии Ubuntu. Также проверьте, что демон afpd работает стабильно и не перезапускается unexpectedly. Проверьте логи на отсутствие ошибок сегментации.
Вывод
CVE-2026-45699 представляет собой серьезную уязвимость в Netatalk, затрагивающую Ubuntu. Хотя вероятность эксплуатации оценивается как низкая, потенциальные последствия (выполнение кода или DoS) требуют внимания. Обновление пакета netatalk является основным методом защиты. Временное изменение структуры файловых систем может снизить риск, но не является долгосрочным решением.
Официальные источники
История обновлений статьи
- 16.08.2026 — Опубликована первая версия материала.
