Ad

CVE-2026-45699

HIGH CVSS 3.1: 7,5 EPSS 0.34%
Обновлено 18 августа 2026
Netatalk
Параметр Значение
CVSS 7,5 (HIGH)
Уязвимые версии 3.1.19 — 4.4.2
Тип уязвимости CWE-191 (Целочисленное переполнение вниз)
Поставщик Netatalk
Публичный эксплойт Нет

Netatalk — это бесплатный пакет файловых серверов с открытым исходным кодом для Unix-подобных операционных систем. В версиях с 3.1.19 по 4.4.2 в функции copydir() демона afpd Netatalk существует переполнение буфера стека из-за переполнения целочисленного значения при вычислении оставшегося размера буфера, используемого для построения пути. copydir() — это служебная функция, вызываемая, когда файловая операция пересекает границу устройства внутри общего тома AFP, с чем не может справиться функция renameat() стандартной библиотеки. Функция пытается отслеживать доступное буферное пространство, используя srem и drem для путей источника и назначения.

Неправильная арифметика приводит к тому, что значения srem и drem достигают SIZE_MAX. Следовательно, граничные проверки на strlen(de->d_name) всегда проходят, позволяя strcpy() добавлять имена файлов в почти полные буферы стека. Версия 4.4.3 исправляет проблему.

В качестве обходного пути настройте каждый общий том AFP так, чтобы он был структурирован как единая файловая система, другими словами, ни один подкаталог общего тома не должен быть точкой монтирования для другой файловой системы.

Показать оригинальное описание (EN)

Netatalk is a Free and Open Source file server suite for Unix-like operating systems. In versions 3.1.19 through 4.4.2, a stack-based buffer overflow exists in the copydir() function of Netatalk's afpd daemon due to an integer underflow in the calculation of the remaining buffer size used for path construction. copydir() is a utility function called when a file operation crosses a device boundary inside an AFP shared volume, which the standard library's renameat() cannot handle. The function attempts to track available buffer space using srem and drem for source and destination paths. Incorrect arithmetic causes both srem and drem to underflow to SIZE_MAX. Consequently, boundary checks against strlen(de->d_name) always pass, allowing strcpy() to append filenames into nearly full stack buffers. Version 4.4.3 patches the issue. As a workaround, configure each AFP shared volume to be structured as a single file system, in other words no subdirectory of a shared volume should be a mount point for a different file system.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Высокая
Сложно эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1

Связанные уязвимости