Исправления безопасности выпускаются для текущей стабильной линии 0.4.x и состояния ветки
main. Более ранние RC и линии до 0.4 не поддерживаются.
Используйте Security → Report a vulnerability в GitHub-репозитории. Private Vulnerability Reporting позволяет обсудить проблему без публичного issue.
В сообщении укажите затронутую версию или commit, сценарий воспроизведения, ожидаемое влияние и безопасный синтетический пример. Не присылайте действующий webhook, домен частного портала, данные задач, полные ответы Bitrix24 или секреты других систем.
Обычные ошибки без влияния на безопасность можно публиковать в GitHub Issues.
Полный URL входящего webhook Bitrix24 является секретом. Если он попал в commit, issue, PR, лог, artifact или чат, немедленно отзовите либо пересоздайте webhook. Удаление строки из последующего commit не отменяет компрометацию и не очищает историю.
Ответы Bitrix24 считаются недоверенными. Плагин не возвращает error_description, принимает
только короткие error-коды заданного формата и заменяет остальные на UPSTREAM_ERROR.
Вложенные объекты пользователя и группы внутри задачи сокращаются до проверенного ID и
ограниченного имени; email, телефоны, адреса, аватар, профильные URL и неизвестные поля
отбрасываются. Отдельный ограниченный поиск сотрудников может вернуть email профиля только
при scope user_basic или user. Задачи и события
истории без корректного safe-integer ID пропускаются, неизвестное имя history event не
отражается наружу, а actor history не содержит login или отчество.
Connection check ограничен профилем и метаданными scope: skill запрещает дополнять его
выборкой задач, их количеством, названиями или сроками без отдельного запроса владельца.
Дополнительные read-tools используют отдельные scopes и фиксированный REST allowlist.
Capability-диагностика отражает только известные плагину права. Поиск сотрудников возвращает
ограниченный рабочий профиль и требует ID, строки имени либо конкретного подразделения.
Телефоны, адреса и фото не запрашиваются даже с user_basic; выдача и пагинация имеют
жёсткие лимиты. Task chat, его системные события, комментарии, checklist text и имена файлов
считаются недоверенным содержимым, даже когда используются для аналитики изменений задачи.
Download/view URL Bitrix24 не возвращаются и не сохраняются, а содержимое файлов не
скачивается. Связи задач читаются только на один уровень без рекурсивного обхода.
Сервис обновлений не принимает имя плагина, URL репозитория, ref или произвольную команду.
Он читает уже записанный Iva GitHub-источник только для bitrix24-read, создаёт предложение
на конкретный SHA и разрешает запуск лишь в течение 15 минут после успешного GitHub Actions.
Отображаемые версии читаются из установленного manifest и из manifest ровно на candidate SHA;
оба значения проходят строгую SemVer-проверку. Удалённый manifest ограничен по размеру,
запрашивается без редиректов и не меняет привязку подтверждения к полному SHA. Offer создаётся
только для более высокой SemVer: commit с той же версией и откат ref на старую версию не
создают обновляющее действие.
Skill запрашивает выбор через встроенный ask_question; Eve/Iva паркует ход и возвращает
нажатую Telegram-кнопку как структурированный ответ. Apply дополнительно требует одноразовый
token того же offer. Offer и job-файлы имеют режим 0600 и не содержат webhook или данные
задач.
Обновление выполняется штатным iva plugin update в отдельном transient systemd unit, после
чего запускается iva doctor. При провале диагностики worker пытается восстановить предыдущий
SHA того же источника. Экземпляр из локальной папки через чат не обновляется.
Tool восстанавливает только адрес локального user-systemd bus и запускает unit неблокирующе.
Worker вызывает точный ~/.local/bin/iva, не доверяет PATH и не использует sudo. При ошибке
запрещён fallback через shell или дочерний процесс iva.service: пересборка может остановить
родительский cgroup раньше, чем такой процесс успеет вернуть сервис.
MCP-процесс не получает Telegram-токен или остальное окружение агента. Однако передача token из structured button response в apply идёт через модель, поэтому это не криптографическая авторизация. Риск ограничен ранее доверенным Git-источником этого плагина, свежим SHA, зелёным CI и TTL offer. Данные задач, файлы и пересланные сообщения никогда не считаются выбором кнопки.