Пакеты os и internal/syscall/windows языка Go некорректно работают с точками монтирования в Windows. Уязвимость CVE-2026-56857 позволяет записывать файлы в места файловой системы, куда приложение писать не должно. Оценка по CVSS 3.1 достигает 9,8 - это критический уровень опасности. Под удар попадают сервисы на Go, работающие под Windows, включая Postgres Pro Enterprise Manager до версии 2.10.1.
CVE-2026-56857 в Go на Windows и Postgres Pro Enterprise Manager
Речь идёт о точках соединения каталогов, которые в Windows называют junction points. Это способ смонтировать один каталог поверх другого, и он часто встречается в служебных путях системы. Стандартная библиотека Go при операциях с такими объектами проверяет путь недостаточно строго. Специально подготовленные структуры данных уводят запись за границы каталога, который приложению разрешён. В итоге файл оказывается там, где его быть не должно.
В Банке данных угроз безопасности информации (BDU) тип ошибки описан как небезопасная операция в точке соединения или монтирования, CWE-1386. Способ эксплуатации - манипулирование структурами данных. Уязвимость выявили 8 октября 2026 года, производитель её подтвердил.
Что даёт злоумышленнику такая запись
Свободная запись в чужой каталог открывает несколько сценариев. Можно подменить файл конфигурации, библиотеку или задание планировщика. Можно оставить в системе собственный файл и закрепиться в ней. Ограничения, которые обычно держат приложение внутри отведённой директории, в этом случае не работают.
Вектор атаки выглядит максимально удобным для злоумышленника. Действовать можно удалённо, без учётных данных и без участия пользователя. Оценки по конфиденциальности, целостности и доступности высокие. На практике эксплуатировать уязвимость получится не у каждого сервиса. Приложение должно принимать внешние данные и при этом работать с файлами под Windows. Сведения о реальных атаках и публичном эксплойте в BDU пока уточняются.
Кого затрагивает проблема
Go - основа множества сетевых сервисов, утилит и внутренних инструментов инфраструктуры. Ошибка проявляется только в сборках под Windows, поэтому серверы на Linux она не затрагивает. Однако в корпоративных сетях Windows-службы встречаются часто, и обновлять придётся именно их.
Отдельный пункт в списке - Postgres Pro Enterprise Manager от Postgres Professional. Продукт управляет кластерами PostgreSQL и потому обычно получает широкие права на файловую систему. Такое сочетание делает запись в произвольное место особенно неприятной. Уязвимы версии до 2.10.1.
Есть и более общий слой проблемы. Уязвимость живёт не в конкретном продукте, а в стандартной библиотеке языка. Значит, она расходится по всей цепочке зависимостей. Каждая программа, собранная на затронутых версиях Go и запущенная под Windows, содержит ту же ошибку. Отследить полный список таких программ вендору почти невозможно.
Как закрыть уязвимость
Postgres Pro Enterprise Manager нужно обновить до версии 2.10.1 или выше. Для Go производитель подготовил рекомендацию GO-2026-6604. Уязвимы ветки до 1.26.9 и диапазон с 1.27.0 по 1.27.2. Сборки вне этих диапазонов содержат исправление.
Администраторам стоит проверить, какие внутренние сервисы собраны на Go и работают на Windows. После обновления тулчейна (набора инструментов сборки) их нужно пересобрать: старый бинарный файл сохранит уязвимость, даже если компилятор уже исправлен. Если пересборка откладывается, помогает ограничение прав. Сервису оставляют запись только в одну конкретную директорию, а служебные пути системы делают для него недоступными.
Отдельного внимания требует цепочка поставок. Сторонние библиотеки и контейнерные образы часто приходят с уже скомпилированными бинарными файлами. Проверить версию Go внутри такого файла можно, и это стоит делать до развёртывания.
Уязвимости в стандартных библиотеках языков программирования бьют по всем продуктам сразу. Одна ошибка в работе с каталогами Windows превращается в проблему для десятков приложений, включая системы управления базами данных. Быстрое обновление здесь важнее аккуратной формулировки бюллетеня: исправление уже доступно, и вопрос лишь в том, как скоро оно дойдёт до конкретного сервера.
Ссылки
- https://bdu.fstec.ru/vul/2026-18197
- https://www.cve.org/CVERecord?id=CVE-2026-56857
- https://pkg.go.dev/vuln/GO-2026-6604
- https://feedly.com/cve/CVE-2026-56857
- https://go.dev/cl/847305
- https://go.dev/issue/81739
- https://groups.google.com/g/golang-announce/c/U2fTuyDJznI
- https://vuln.go.dev/ID/GO-2026-6604.json