flawopen.com/Teardowns/cve-2015-3306-proftpd-mod-copy-unauthenticated-file-copy
CVE-2015-3306: копирование файлов без аутентификации в ProFTPD mod_copy
CVE-2015-3306 позволяла неаутентифицированным клиентам копировать файлы на сервере с помощью команд ProFTPD mod_copy. Исправление upstream проверяет аутентификацию в обоих обработчиках SITE CPFR и SITE CPTO; CISA добавила уязвимость в KEV 08.10.2026. В совместном бюллетене ФБР, CISA, АНБ и партнеров от 8 октября 2026 года CVE-2015-3306 указана среди успешно использованных CVE, сведения о которых получены из скриптов MicroScan; для этой CVE не названы пострадавшая организация или дата инцидента.[1], [2], [5], [6]
Представьте архивариуса, который принимает от любого человека просьбы «скопируйте этот файл» и «положите копию сюда». Проверки только одной просьбы недостаточно: и выбор источника, и выбор места назначения должны относиться к аутентифицированному сеансу.[3]
Ключевые понятия и термины
SITE CPFR / SITE CPTO- Команды ProFTPD mod_copy для выбора источника и назначения копирования на сервере.[3], [5]
CWE-284- Ненадлежащий контроль доступа: защищённая операция доступна без требуемой авторизации.[1]
Связи со стандартами
- Ссылка CWE для слабого места, описанного в этом руководстве: CWE-284
- CISA KEV — добавлено 2026-10-08 — CVE-2015-3306
Анализ первопричины
В затронутых установках ProFTPD 1.3.5, где mod_copy доступен и включён, обработчики copy_cpfr() и copy_cpto() принимали команды SITE CPFR/SITE CPTO без требования аутентифицированного сеанса. В upstream PR #109 в оба обработчика добавлена проверка состояния аутентификации после базовых проверок диспетчеризации команды, но до проверки минимального числа аргументов, обработки исходного/целевого пути и копирования; при отсутствии аутентификации возвращается FTP 530 / EPERM. Модуль по-прежнему ограничен правами ОС процесса ProFTPD, поэтому воздействие на файлы зависит от этих прав и конфигурации. Debian указывала выполнение произвольного кода как возможный, а не автоматический результат; для него нужны дополнительные условия конкретной системы, например доступный для записи путь, который затем обрабатывается как код.[3], [5], [4]
Матрица для операторов: доступность и проверка исправленных пакетов
| Состояние развертывания | Что подтверждают источники | Действие защиты |
|---|---|---|
ProFTPD 1.3.5, модуль mod_copy доступен и включён | В записи Ubuntu описано удалённое чтение и запись файлов через SITE CPFR и SITE CPTO; NVD указывает ProFTPD 1.3.5 как уязвимую версию. | Проверьте точную сборку пакета, загрузку модуля и доступность команд; обновитесь до исправленного пакета дистрибутива. |
Исправление upstream: PR #109 / commit 35b65aa | В исправлении добавлены проверки аутентификации в copy_cpfr() и copy_cpto() перед операциями копирования. | Убедитесь, что обе команды отклоняют неаутентифицированные сеансы; права файловой системы учитывайте как отдельную границу. |
| Debian wheezy / jessie / stretch и sid | В Debian эти ветки исправлены в версиях 1.3.4a-5+deb7u3, 1.3.5-1.1+deb8u1 и 1.3.5-2 соответственно. | Сверьте установленную ревизию пакета Debian с соответствующей исправленной версией; не полагайтесь только на номер upstream. |
Поддержка CopyEngine off | PR #109 добавляет эту директиву; документация модуля указывает совместимость начиная с 1.3.6rc1. | Используйте CopyEngine off, если установленная версия поддерживает директиву и функция не нужна; иначе удалите модуль или обновитесь. |
Пошаговый сценарий атаки
Исходный код: Уязвимый vs Защищённый вариант
В уязвимом фрагменте copy_cpfr() отсутствует проверка аутентификации; исправленный фрагмент вставляет upstream-проверку состояния сеанса перед проверкой аргументов и изменением состояния. PR #109 добавляет такую же защиту в copy_cpto(). Это фрагмент исходного кода, а не самостоятельная программа.[3]
/* Сокращённый фрагмент copy_cpfr() до upstream PR #109. */
if (cmd->argc < 3 ||
strncasecmp(cmd->argv[1], "CPFR", 5) != 0) {
return PR_DECLINED(cmd);
}
CHECK_CMD_MIN_ARGS(cmd, 3);
/* Обработка исходного пути продолжается без проверки аутентификации. */
/* Сокращённый фрагмент upstream-исправления copy_cpfr(), PR #109. */
unsigned char *authenticated = NULL;
if (cmd->argc < 3 ||
strncasecmp(cmd->argv[1], "CPFR", 5) != 0) {
return PR_DECLINED(cmd);
}
authenticated = get_param_ptr(cmd->server->conf, "authenticated", FALSE);
if (authenticated == NULL || *authenticated == FALSE) {
pr_response_add_err(R_530, _("Please login with USER and PASS"));
pr_cmd_set_errno(cmd, EPERM);
errno = EPERM;
return PR_ERROR(cmd);
}
CHECK_CMD_MIN_ARGS(cmd, 3);
Чек-лист по защите системы для инженеров
- ✓Обновите пакет ProFTPD до поддерживаемого поставщиком выпуска с исправлением; проверяйте backport по бюллетеню дистрибутива, а не только по номеру upstream-версии.[4], [5], [3]
- ✓Найдите системы, где mod_copy собран, загружен или включён; если функция не нужна, отключите её директивой CopyEngine off в поддерживаемых версиях или удалите модуль в версиях без этой директивы.[3], [5]
- ✓В разрешённой тестовой среде проверьте, что SITE CPFR и SITE CPTO отклоняют неаутентифицированные сеансы, а права вошедших пользователей на копирование остаются ожидаемыми.[3]
- ✓Проверьте FTP-журналы и журналы целостности файлов на необычные копирования; оценивайте риск с учётом прав службы в файловой системе и доступных для записи путей приложений.
Источники
- NVD — CVE-2015-3306, CWE-284 and CISA KEV status
- CISA Known Exploited Vulnerabilities Catalog — CVE-2015-3306
- ProFTPD upstream fix — PR #109, commit 35b65aa
- Debian Security Advisory DSA-3263-1
- Ubuntu security record — CVE-2015-3306
- FBI/CISA/NSA and partner agencies — AA26-281A joint advisory (2026-10-08)