
POC для CVE-2026-49009, проблемы аутентифицированного обхода пути до RCE в Mender Server.
▄█████ ██ ██ ██████ ████▄ ▄██▄ ████▄ ▄██▀▀▀ ██ ██ ▄█▀▀█▄ ▄██▄ ▄██▄ ▄█▀▀█▄
██ ██▄▄██ ██▄▄ ▄▄▄ ▄██▀ ██ ██ ▄██▀ ██▄▄▄ ▄▄▄ ▀█████ ▀▀▀██ ██ ██ ██ ██ ▀▀▀██
▀█████ ▀██▀ ██▄▄▄▄ ███▄▄ ▀██▀ ███▄▄ ▀█▄▄█▀ ██ ▄▄██▀ ▀██▀ ▀██▀ ▄▄██▀
░█▄█░█▀▀░█▀█░█▀▄░█▀▀░█▀▄░░░█▀▀░█▀▀░█▀▄░█░█░█▀▀░█▀▄░░░█▀▄░█▀▀░█▀▀░
░█░█░█▀▀░█░█░█░█░█░█░█▀▀░█▀▄░░░▀▀█░█▀▀░█▀▄░▀▄▀░█▀▀░█▀▄░░░█▀▄░█░░░█▀▀░
░▀░▀░▀▀▀░▀░▀░▀▀░░▀▀▀░▀░▀░░░▀▀▀░▀▀▀░▀░▀░░▀░░▀▀▀░▀░▀░░░▀░▀░▀▀▀░▀▀▀░
Я обнаружил и ответственно раскрыл критическую уязвимость в механизме создания однофайловых артефактов Mender Server. Проблема начиналась как ошибка санитизации входных данных и обхода пути в контролируемом пользователем поле args.filename, но я показал, что ошибка не ограничивается произвольной записью файлов. Нацелившись на исполняемый файл, принадлежащий рабочему процессу внутри контейнера создания артефактов, я эскалировал проблему до надежного удаленного выполнения кода.
На практике аутентифицированный злоумышленник с доступом к генерации артефактов мог перезаписать /usr/bin/mender-artifact внутри . Затем рабочий процесс вызывал этот же бинарник в ходе обычной генерации артефакта, что приводило к выполнению полезной нагрузки, контролируемой атакующим.
create-artifact-workerТаким образом, ошибка обхода пути/произвольной перезаписи превратилась в проблему выполнения кода на стороне бэкенда в рабочем процессе артефактов.
Уязвимый рабочий процесс принимал контролируемые злоумышленником входные данные в процессе создания однофайлового артефакта и недостаточно ограничивал, куда будет записано загруженное содержимое.
Я обнаружил, что могу контролировать args.filename и использовать обход пути для записи за пределы целевого каталога. Вместо записи обычного входного файла артефакта я направил цель записи на /usr/bin/mender-artifact внутри контейнера рабочего процесса. Поскольку в уязвимой конфигурации пользователь времени выполнения владел этим бинарником, запись прошла успешно.
Позже рабочий процесс вызвал mender-artifact как часть процесса сборки артефакта. Поскольку я уже заменил этот исполняемый файл своей полезной нагрузкой, рабочий процесс выполнил код, контролируемый злоумышленником.
Атакующему требовалось:
На высоком уровне цепочка эксплуатации выглядела так:
/usr/bin/mender-artifact.mender-artifact в ходе генерации артефакта.Это было важно, потому что уязвимая цель записи была не просто любым файлом. Это был бинарник, которому рабочий процесс немедленно доверял и выполнял.
Успешный атакующий мог выполнять произвольные команды внутри общего рабочего процесса создания артефактов.
Оттуда воздействие выходило за рамки одного запроса:
Короче говоря, это была не просто ошибка записи файлов. Это была ошибка выполнения кода в чувствительном компоненте бэкенда, который находился на пути доставки программного обеспечения.
В итоге HackerOne оценил отчет как Критический и выплатил вознаграждение в размере 3000 долларов США, что соответствовало практическому воздействию, продемонстрированному во время валидации.
Первопричиной был сбой границ доверия в пути создания однофайлового артефакта.
Рабочий процесс слишком далеко по цепочке обработки бэкенда доверял входным данным пути, контролируемым злоумышленником. Это позволяло имени файла, на которое влиял пользователь, выйти за пределы предполагаемого местоположения и достичь чувствительных целей файловой системы. Затем среда рабочего процесса усугубила эту ошибку, поскольку предоставляла доступ к исполняемым путям, которые были доступны для записи пользователю времени выполнения и позже выполнялись самим рабочим процессом.
Такое сочетание создало чистую цепочку эксплуатации:
Входные данные пути, контролируемые пользователем → Произвольная перезапись файла → Перезапись доверенного исполняемого файла → RCE на бэкенде
CVE-2026-49009 показывает, как, казалось бы, узкая проблема санитизации входных данных может превратиться в полноценную цепочку RCE, когда доверенный рабочий процесс записывает данные, контролируемые злоумышленником, в исполняемые пути.
В уязвимых версиях аутентифицированный злоумышленник мог превратить функцию создания однофайлового артефакта в цепочку обхода пути, произвольной перезаписи и удаленного выполнения кода. Исправленные версии заблокировали этот путь и вернули рабочий процесс к его предполагаемому поведению.