Версия 2026.10.1
Кратко: в релизе появилась оценка приоритета дефектов, которая учитывает данные внешних CVE-каталогов. Для трекеров задач добавлены шаблоны задач, для Azure Boards - внешние справочники значений полей. Образы сканеров можно загружать из приватного registry, добавлен импорт отчётов Nessus.
Перед обновлением
У Vampy BRO появилась собственная база PostgreSQL. В Kubernetes на больших инсталляциях остановите engine на время обновления. Если используется внешний PostgreSQL или Argo CD, до обновления выполните шаги из раздела Подготовка к обновлению. При обновлении с 2026.9.1 и ниже в Kubernetes выполните также подготовку из заметок к 2026.9.2.
Что нового
Дефекты и приоритизация
- Оценка приоритета (0-100) для дефектов: отдельные формулы для SAST, SCA и DAST, учёт внешних данных (EPSS, CISA KEV, БДУ ФСТЭК, NVD) и критичности объектов. Настройка в Админ > Оценка приоритета. Подробнее: Оценка приоритета дефекта, Настройки оценки приоритета.
- Новая карточка дашборда Проблемы для разбора в первую очередь - пять незакрытых дефектов с наибольшей оценкой: Карточки дашбордов.
- Новые права ролей: чтение и запись настроек оценки приоритета, а также чтение и запись шаблонов задач трекера. См. Стандартные роли.
- Внешние каталоги загружает и обновляет Vampy BRO, он же рассчитывает оценки приоритета. Каталоги скачиваются из registry Hexway (репозитории
external-db/*), поэтому сервису нужен доступ к registry. - На карточке дефекта: Поток данных для SAST-находок из отчётов PT AI: Поток данных.
- В PDF-отчёте закрытые дефекты, попавшие в фильтр выгрузки, учитываются в сводке и графиках: Отчеты в PDF.
Трекеры задач
- Шаблоны задач на Jinja для заголовка и описания задачи в Jira, Kaiten, Azure Boards и EvaTeam: Шаблоны задач.
- Azure Boards: значения полей задачи можно брать из внешнего HTTP-справочника с проверкой источника из мастера интеграции: Внешние источники значений полей.
Сканирование и оркестрация
- Явное имя и тег образа при сканировании архива Docker-образа (REST API и
vampy-cli --docker-image-slug, нуженvampy-cli0.13.0 или новее): Запуск сканирований. - Загрузка образов сканеров из приватного registry: Приватный registry образа сканера.
- Поддержка AICTL для PT AI в оркестрации (сканер PT AI (aictl)).
- Импорт отчётов Nessus (XML-отчёт
.nessus, тип DAST,VV_SCAN_TYPE=NESSUS): Поддерживаемые сканеры. - Semgrep: ошибки конфигурации больше не приводят к повторным попыткам запуска: Semgrep.
Интеграции со сканерами
- PT AI: отчёты формата v2: Интеграция с PT AI.
- CodeScoring: поддержка CVSS v4: Интеграция с CodeScoring.
Установка
- Docker Compose: новые параметры встроенного PostgreSQL в
user.ini:v.postgres.shared_buffers.mb(по умолчанию 256) иv.postgres.shm_size.mb(по умолчанию 512). Они устраняют ошибкуcould not resize shared memory segment. - У Vampy BRO собственная база PostgreSQL, см. Подготовка к обновлению.
Группы пользователей
- Доступ группы к продукту или репозиторию можно назначить и снять прямо из карточки группы: Группы пользователей.
Интерфейс
- Обновлена таблица дефектов: более плотные строки, путь к файлу открывается по ссылке.
- Боковая панель с подробностями в списках продуктов и репозиториев.
Подготовка к обновлению
У Vampy BRO появилась собственная база PostgreSQL v_bro. По умолчанию она создаётся при обновлении
на том же сервере PostgreSQL, что и база engine.
Если создать базу не удалось, в Docker Compose обновление прерывается до миграций основной базы, а в Kubernetes обновляется всё, кроме сервисов BRO.
Kubernetes: остановите engine на время обновления
Миграции добавляют колонки и индексы в таблицу дефектов. На больших инсталляциях это занимает
время, а работающий engine может задерживать миграцию. В Kubernetes перед helm upgrade остановите engine вручную:
После миграций Helm вернёт engine к числу реплик из vEngine.replicas. Если релиз управляется
Argo CD с автоматической синхронизацией, приостановите её на время обновления.
Встроенный PostgreSQL
Дополнительных действий не требуется.
Внешний PostgreSQL
Базу BRO создаёт учётная запись engine. Права на создание нужны только на время обновления: дальше
engine работает под своей ролью, а BRO под ролью v_bro. Перед обновлением выполните один из
вариантов.
Вариант 1. Временно дать роли engine права на создание базы и роли. Подставьте имя роли engine:
ALTER ROLE v_server CREATEDB CREATEROLE;
-- только для PostgreSQL 16 и новее
ALTER ROLE v_server SET createrole_self_grant = 'set';
После успешного обновления права можно забрать:
Разрешите подключения с хостов Vampy в pg_hba.conf:
Если Vampy подключается через PgBouncer, добавьте в него базы postgres и v_bro.
В Kubernetes вместо прав для роли engine можно временно передать учётные данные администратора
PostgreSQL в broDatabase.adminSecretsKeyRefs (пример ниже). Они используются только Job
обновления, после обновления их можно удалить из values.
Вариант 2. Создать базу и пользователя BRO заранее под администратором PostgreSQL:
Разрешите роли v_bro подключение к базе v_bro в pg_hba.conf и PgBouncer и укажите пароль в
конфигурации Vampy (примеры ниже). Пароль в конфигурации должен совпадать с паролем роли в
PostgreSQL, иначе обновление остановится.
Отдельный сервер PostgreSQL для BRO
Базу и пользователя BRO администратор создаёт заранее, как в варианте 2, и указывает адрес сервера в конфигурации (примеры ниже).
Docker Compose: пример user.ini
Параметры задаются в /opt/hw-vmp/config/user.ini, секция [main]. Для варианта 1 ничего добавлять
не нужно.
Вариант 2:
Отдельный сервер:
[main]
v.bro.pg.mode = custom
v.bro.pg.host = bro-postgres.example.internal
v.bro.pg.port = 5432
v.bro.pg.password = <пароль v_bro>
Kubernetes: пример values
Для варианта 1 блок broDatabase менять не нужно.
Временные учётные данные администратора вместо прав для роли engine:
broDatabase:
adminSecretsKeyRefs:
username:
name: vampy-pg-admin
key: username
password:
name: vampy-pg-admin
key: password
Вариант 2, пароль в отдельном Secret:
Отдельный сервер:
broDatabase:
mode: custom
host: bro-postgres.example.internal
port: "5432"
secretsKeyRefs:
password:
name: vampy-bro-db
key: password
Если на отдельном сервере базу должен создать Job обновления, добавьте к этому блоку
adminSecretsKeyRefs, как в примере выше.
Argo CD. Новый ключ BRO_POSTGRES_PASSWORD сам в Secret $RELEASE_NAME-vampy-secrets не
попадёт. Перед синхронизацией добавьте его вручную:
kubectl patch secret "${RELEASE_NAME}-vampy-secrets" -n "${RELEASE_NAMESPACE}" --type merge \
-p "{\"stringData\":{\"BRO_POSTGRES_PASSWORD\":\"$(openssl rand -hex 16)\"}}"
Если Secret создаёт оператор (Vault, External Secrets, Sealed Secrets), добавьте этот ключ в его описание. Подробнее: Развёртывание через Argo CD.
Выделенные узлы. Если поды Vampy запускаются только на выделенных узлах, задайте для задач
обновления preUpgrade.nodeSelector, preUpgrade.tolerations и preUpgrade.affinity, иначе они
могут не запуститься.
После обновления
Откройте Админ > Оценка приоритета и дождитесь, когда у всех внешних источников появится Последняя синхронизация. После этого расчёт включится автоматически, если лицензия позволяет использовать оценку приоритета, и оценки сразу рассчитаются для всех открытых дефектов.
Изменения REST API
Обратная совместимость по URL: удалённых paths и HTTP-методов нет. Ответы и тела запросов в основном расширены (новые поля, enum, коды ответов). Клиенты с жёсткой валидацией JSON должны обновить модели по актуальной OpenAPI.
Несовместимо изменилось тело запроса POST /integrations/task_tracker/{...}/{integrationID}/external_dict/probe/: fields теперь объект с настройками полей (url, displayPath, valuePath) вместо массива имён, поле token заменено на externalDictToken.
Сводка: 12 новых paths, 16 новых операций.
Новые возможности API
Внешние данные дефекта
| Метод | Path | Назначение |
|---|---|---|
| GET | /scan_issues/{scanIssueID}/external_data/ |
CVE-данные и статус синхронизации (CISA KEV, EPSS, ФСТЭК, NVD) |
Оценка приоритета (настройки пространства)
| Метод | Path | Назначение |
|---|---|---|
| GET | /service/priority_score/{spaceID}/settings/ |
Получить настройки |
| PATCH | /service/priority_score/{spaceID}/settings/ |
Включить или выключить расчёт |
| PATCH | /service/priority_score/{spaceID}/settings/{scannerType}/ |
Изменить формулу типа сканирования |
| POST | /service/priority_score/{spaceID}/settings/{scannerType}/reset/ |
Сброс формулы к умолчанию |
| POST | /service/priority_score/{spaceID}/settings/recalculation/run/ |
Запустить пересчёт (ответ 202; при отсутствии запланированного пересчёта - 409) |
Шаблоны Task Tracker
| Метод | Path |
|---|---|
| GET | /service/templates/meta/task-trackers/ |
| POST | /service/templates/preview/task-trackers/ |
| GET, POST | /service/templates/task-trackers/ |
| GET, PATCH, DELETE | /service/templates/task-trackers/{templateID}/ |
| POST | /service/templates/task-trackers/{templateID}/duplicate/ |
Группы пользователей
| Метод | Path | Назначение |
|---|---|---|
| POST | /user_groups/{userGroupID}/relations/set/ |
Назначить доступ к продукту или репозиторию |
| POST | /user_groups/{userGroupID}/relations/unset/ |
Снять прямой доступ |
Обновлённые операции (кратко)
- Сканирование и загрузка:
imageSlugдля архива образа вPOST /ext/v1/scan/,POST /ext/v1/orchestration/run/иPOST /spaces/{spaceID}/orchestration/run/(в CLI:--docker-image-slug). Новые значения enum: парсерNESSUS, сканерPT_AI_AICTL. - Дефекты: в списке и карточке дефекта новые поля
priorityScore,priorityScoreCalculationInProgressиdataFlow; фильтр по диапазонуpriorityScore, сортировка поpriorityScoreиfpScore; в истории изменений новый тип измененияPRIORITY_SCORE. - Права: новые значения
ADMIN_PRIORITY_SCORE_SETTINGS_*иADMIN_TASK_TRACKER_TEMPLATE_*. - Bitbucket:
externalIDпри импорте и связывании ограничен 256 символами, более длинные значения отклоняются с400. - Task Tracker:
PATCHинтеграции - шаблоны, для Azure Boards также внешние словари;POST .../external_dict/probe/- проверка источника словаря.
Исправления и улучшения
- Временный статус дефекта снова откатывается по истечении срока, даже если у пользователя, который его установил, нет прав на целевой статус.
- Удаление назначенной группы пользователей больше не приводит к ошибке на вкладке "Группы" продукта или репозитория.
- Nexus 3.88 и новее: поиск образов по имени больше не завершается ошибкой: Интеграция с Nexus.
- CodeScoring: исправлен порядок аргументов при запуске Johnny 2026.35.1 и новее; пустые SBOM-отчёты больше не прерывают разбор.
- Ускорен список репозиториев при большом числе агрегаций.
- Bitbucket VCS: длинный
external_idпри импорте и связывании. - Профиль пользователя при LDAP: сохранение языка и MFA для неадминистраторов.
- Оркестрация: удаление scan profile из списка, правка ссылок на образы, ошибка при пустом scan ID AppScreener.
- Активы: исправлена сортировка по endpoint.
- Репозиторий без критичности снова создаётся без ошибки.
- Большие значения счётчиков на графиках статусов отображаются корректно.
- Снижено потребление CPU сервисом файлов.
- Интерфейс Nexus и ряд мелких исправлений интерфейса.
Безопасность
Обновлены базовые образы Python в компонентах платформы с устранением CVE-2026-7210.
Обновлены зависимости backend: Flask 3.1.3, Werkzeug 3.1.8, connexion 3.3.0, SQLAlchemy 2.0.54, gunicorn 26.2.0, requests 2.34.2.