Уязвимость Windmill с идентификатором CVE-2026-29059 уже используют в реальных атаках, а исследователи насчитали около 170 доступных из интернета уязвимых систем в 24 странах. Для команд, которые держат внутренние инструменты разработки на open-source платформах, это неприятное напоминание: даже «непубличный» dev-стек часто торчит наружу сильнее, чем кажется.
О проблеме сообщает The Hacker News со ссылкой на данные VulnCheck. Речь идет о path traversal в open-source платформе Windmill: через endpoint get_log_file по пути /api/w/{workspace}/jobs_u/get_log_file/{filename} атакующий может подставить в параметр имени файла последовательности вида ../ и читать произвольные файлы на сервере без какой-либо аутентификации. Оценка по CVSS — 7,5, то есть это не «теоретическая неприятность», а вполне рабочий вход в инфраструктуру.
По описанию Windmill, основной риск связан не только с чтением файлов как таковым. Самая чувствительная цель — переменная окружения SUPERADMIN_SECRET, которую можно попытаться вытащить через /proc/1/environ. Если этот секрет задан, его можно использовать как Bearer-токен для входа с правами суперадмина, а дальше — выполнять произвольный код через API предпросмотра задач. Иными словами, цепочка выглядит довольно знакомо: сначала «всего лишь» чтение файлов, потом кража секрета, потом уже полноценный захват платформы.
Есть, впрочем, важная оговорка. В Windmill подчеркивают, что SUPERADMIN_SECRET по умолчанию не включен. Для standalone-инсталляций без этой переменной последствия ограничиваются произвольным чтением файлов. Это все еще плохой сценарий: из файловой системы можно вытащить конфигурации, ключи, служебные токены, сведения о пользователях и устройстве контейнера. Но граница между «неприятно» и «катастрофа» здесь действительно проходит по тому, как именно развернут конкретный экземпляр Windmill.
Сам баг, как пишет издание, закрыли еще в Windmill 1.603.3, выпущенной в январе 2026 года: разработчики добавили проверки и очистку параметра filename, чтобы заблокировать directory traversal. При этом advisory по уязвимости был опубликован в марте 2026-го, а сейчас VulnCheck уже наблюдает эксплуатацию в поле. Исследователь Валентин Лобстайн, которому приписывают обнаружение и сообщение о проблеме, зафиксировал попытки вытащить через этот endpoint содержимое /etc/passwd. По словам вице-президента VulnCheck по security research Кейтлин Кондон, атаки шли не только на прямые endpoint’ы Windmill, но и через proxy-путь Nextcloud. Это важная деталь для тех, кто прячет внутренние сервисы за дополнительным слоем: прокси сам по себе не лечит уязвимый backend.
Контекст здесь тоже показательный. История с Windmill вышла на фоне новой порции багов, которые CISA добавило в каталог Known Exploited Vulnerabilities. В тот же список попали две уязвимости WordPress, объединяемые в цепочку wp2shell, старый stack-based buffer overflow в DD-WRT и unauthenticated RCE в Langflow. Логика у всех кейсов одна и та же: если продукт широко доступен, имеет понятный HTTP-интерфейс и оставляет шанс зайти без логина, между публикацией деталей и массовыми попытками эксплуатации проходит все меньше времени. Иногда — считаные дни.
Для разработчиков и DevOps-команд эта история не столько про конкретный Windmill, сколько про классическую дисциплину эксплуатации внутренних платформ. Во-первых, если экземпляр Windmill смотрит в интернет, версию нужно проверить немедленно: все, что ниже 1.603.3, выглядит как кандидат на срочное обновление. Во-вторых, стоит отдельно посмотреть, задан ли SUPERADMIN_SECRET, где он хранится и не дает ли он избыточные права. В-третьих, нужно проверить журналы и сетевые запросы к get_log_file, особенно с шаблонами вроде ../, попытками чтения /etc/passwd, /proc/1/environ и других системных файлов. Если сервис стоял за Nextcloud или другим прокси, это не повод выдыхать — такие маршруты тоже уже светились в наблюдаемой эксплуатации.
Для бизнеса вывод еще проще и от этого не веселее: внутренние инструменты разработки давно стали частью внешней поверхности атаки. Как только в компании появляются self-hosted automation-платформы, low-code оркестраторы, job runners и прочая «инженерная мелочь», их нужно сопровождать как полноценные production-сервисы, а не как удобную коробку для команды. Иначе одна уязвимость Windmill быстро превращается из бага в логах в разговор с безопасниками о том, почему секреты лежали слишком близко к веб-ручке.