Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-42167 — Технический анализ и proof-of-concept для CVE-2026-42167, критической SQL-инъекции в ProFTPD mod_sql, позволяющей обход аутентификации, внедрение пользователя-бэкдора и удалённое выполнение кода. | Kitploit
Инструменты/GitHubGitHub/kaleth4/cve-2026-42167
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming
GitHubkaleth4/cve-2026-42167

CVE-2026-42167

Технический анализ и proof-of-concept для CVE-2026-42167, критической SQL-инъекции в ProFTPD mod_sql, позволяющей обход аутентификации, внедрение пользователя-бэкдора и удалённое выполнение кода.

Репозиторий
3 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-42167: SQL-инъекция в ProFTPD mod_sql

📋 Резюме

CVE-2026-42167 — это критическая уязвимость SQL-инъекции в модуле mod_sql ProFTPD, которая позволяет обход аутентификации, внедрение backdoor-пользователей и удалённое выполнение кода (RCE).

АтрибутЗначение
ТипSQL-инъекция (CWE-89)
СерьёзностьВысокая/Критическая
CVSS v38.1
Компонентmod_sql в ProFTPD < 1.3.9a
СообщеноZeroPath Research
Дата28 апреля 2026 г.

🔍 Техническое описание

Проблема: слабая проверка в is_escaped_text()

ProFTPD использует функцию is_escaped_text() для определения того, было ли значение уже экранировано перед вставкой в SQL-запрос. Функция предполагает, что любой ввод, который:

  • Начинается с одинарной кавычки '
  • Заканчивается одинарной кавычкой '
  • Не содержит внутренних одинарных кавычек

...уже экранирован и не требует дополнительной обработки.

Эксплойт

Злоумышленник может отправить вредоносное имя пользователя, например:

root@kitploit:~
USER ' || (SELECT 1) ||'

При вставке в SQL-запрос, например:

root@kitploit:~
INSERT "'%U', '%r', '%m'" activity_log

Получается:

root@kitploit:~
INSERT "'' || (SELECT 1) || ''" activity_log

Полезная нагрузка выполняется как произвольный SQL, поскольку операторы || конкатенируют пустые строки вокруг внедрённой команды.


⚠️ Сценарии воздействия

1️⃣ Удалённое выполнение кода (RCE)

Требования:

  • Бэкенд PostgreSQL
  • Пользователь базы данных с правами суперпользователя
  • Включённое SQL-логирование с переменными %U или %{basename}

Техника:

root@kitploit:~
COPY (SELECT 1) TO PROGRAM 'вредоносная_команда'

Выполняет команды на уровне операционной системы от имени пользователя postgres.

2️⃣ Обход аутентификации

Требования:

  • Включён SQLAuthenticate
  • SQL-логирование с переменной %U в SQLLog ERR_* (до аутентификации)

Техника:

root@kitploit:~
INSERT INTO users (username, password, uid, homedir) 
VALUES ('attacker', 'password_hash', 0, '/')

Злоумышленник внедряет backdoor-пользователя с uid=0 (root) и доступом ко всей файловой системе.

3️⃣ Эксфильтрация данных

Требования:

  • Любой SQL-бэкенд
  • Включённое SQL-логирование

Техника: Слепая SQL-инъекция на основе времени для извлечения учётных данных посимвольно.


📊 Векторы атаки

Переменные, контролируемые злоумышленником

ПеременнаяЗначениеОбласть действия
%UОригинальное имя пользователя (до аутентификации)До аутентификации
%AПароль анонимного входаДо аутентификации
%JПараметры командыДо аутентификации
%mFTP-глагол (STOR, RETR и т. д.)До аутентификации
%{basename}Компонент имени файлаПосле аутентификации
%lОтвет ident (RFC 1413)До аутентификации (если доступен identd)

Пути эксплуатации

До аутентификации (наиболее критично):

root@kitploit:~
%U + SQLLog ERR_* → Учётные данные не требуются

После аутентификации:

root@kitploit:~
%{basename} + SQLLog STOR → Требуется любой действительный FTP-пользователь

🛡️ Смягчение и решение

✅ Рекомендуемое решение

Немедленно обновитесь до ProFTPD 1.3.9a или выше:

root@kitploit:~
# Проверить текущую версию
proftpd -v

# Обновление (пример для Debian/Ubuntu)
sudo apt-get update
sudo apt-get install proftpd-basic=1.3.9a-1

🔧 Временные меры смягчения

Если вы не можете обновиться немедленно:

  1. Отключить SQL-логирование:
root@kitploit:~
# Закомментируйте или удалите эти строки в proftpd.conf
# SQLLog * log_activity
# SQLLog ERR_* log_activity
  1. Применить принцип наименьших привилегий:
root@kitploit:~
-- В PostgreSQL создайте пользователя без прав суперпользователя
CREATE USER proftpd_user WITH PASSWORD 'secure_password';
GRANT SELECT, INSERT ON activity_log TO proftpd_user;
-- НЕ выдавать SUPERUSER
  1. Мониторинг попыток эксплойта:
root@kitploit:~
TraceLog /var/log/proftpd/trace.log
Trace sql:17

🔎 Проверка уязвимости

Индикатор компрометации

Поищите в журналах трассировки ProFTPD (с включённым Trace sql:17):

root@kitploit:~
text 'payload' is already escaped, skipping escaping it again

Это сообщение указывает на то, что попытка обхода была обработана уязвимым движком.

Команда для проверки

root@kitploit:~
# Включить подробную трассировку
echo "Trace sql:17" >> /etc/proftpd/proftpd.conf

# Перезапустить ProFTPD
sudo systemctl restart proftpd

# Мониторинг журналов
tail -f /var/log/proftpd/trace.log | grep "already escaped"

📦 Информация о версиях

ВерсияСтатус
< 1.3.9❌ Уязвима
1.3.9❌ Уязвима
≥ 1.3.9a✅ Исправлена
≥ 1.3.10rc1✅ Исправлена

🧪 Доказательство концепции (PoC)

Официальный репозиторий

GitHub: ZeroPathAI/proftpd-CVE-2026-42167-poc

Быстрая настройка с Docker

root@kitploit:~
# Клонировать репозиторий
git clone https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc.git
cd proftpd-CVE-2026-42167-poc

# Требования
# - Docker
# - Git
# - Python 3.10+
# - uv (менеджер пакетов Python)

# Настроить уязвимую среду
cd setup
./setup.sh

# Запустить PoC
cd ../pocs
python3 preauth_user_backdoor.py      # Внедрить backdoor-пользователя (до аутентификации)
python3 preauth_user_rce.py           # RCE через COPY TO PROGRAM (до аутентификации)
python3 postauth_stor_backdoor.py     # Внедрить пользователя (после аутентификации)
python3 postauth_stor_rce.py          # RCE (после аутентификации)

# Очистка
cd ../setup
./teardown.sh

📅 Хронология

ДатаСобытие
2026-03-28Уязвимость сообщена в ProFTPD
2026-04-07Проверка и разработка патча
2026-04-24Присвоен CVE-2026-42167
2026-04-27Выпущен патч (коммит af90843baf7dcb8c6be1e5261be2d0b5b5850673)
2026-04-27Выпущен ProFTPD 1.3.9a

📚 Ссылки

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-42167
  • Технический блог: https://zeropath.com/blog/proftpd-cve-2026-42167-auth-bypass-privesc-rce
  • Репозиторий PoC: https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc
  • Примечания к выпуску: http://www.proftpd.org/docs/RELEASE_NOTES-1.3.10rc1
  • Обсуждение: https://github.com/proftpd/proftpd/issues/2052

⚡ Финальные рекомендации

  1. Немедленное действие: Обновить ProFTPD до 1.3.9a или выше
  2. Аудит: Проверить конфигурации SQLLog на всех серверах ProFTPD
  3. Привилегии: Убедиться, что пользователи базы данных не имеют прав суперпользователя
  4. Мониторинг: Внедрить оповещения о попытках SQL-инъекций
  5. Патчи: Поддерживать регулярную программу установки патчей для всех зависимостей

Последнее обновление: 28 апреля 2026 г.
Источник: ZeroPath Research, MITRE CVE, NVD

Скачать инструмент