Skip to content

Security: Desko77/ai-edt

Security

SECURITY.md

Security Policy

Поддерживаемые версии

Патчи безопасности применяются к последнему релизу. Старые версии обновляйте перед отчетом.

Как сообщить об уязвимости

Не открывайте публичный issue для уязвимостей безопасности. Используйте GitHub Private Vulnerability Reporting (вкладка Security → Report a vulnerability на странице репозитория) либо напишите напрямую мейнтейнеру.

Постарайтесь указать:

  • версию плагина и EDT;
  • описание проблемы и шаги воспроизведения;
  • возможное влияние (выполнение кода, утечка данных, отказ в обслуживании);
  • предложение фикса, если есть.

Ответ - в течение нескольких дней. Координированное раскрытие приветствуется.

Модель безопасности

AI-EDT - локальный MCP-сервер для рабочего процесса одного разработчика.

  • Сервер слушает только loopback (127.0.0.1). Флажок Require bearer token на странице Window → Preferences → AI-EDT включает проверку: каждый запрос к /mcp несет bearer-токен, /health без токена отвечает полями status, phase, edt_version. При привязке ко всем интерфейсам токен требуется независимо от флажка. Токен создается при первом запуске сервера и показан только на той же странице; в журнал, в тело отказа 401 и в ответ /health он не попадает.
  • Запрос браузера принимается только с происхождением http://localhost, http://127.0.0.1, http://[::1] (с портом или без, http/https) или vscode-webview://<id>; Origin: null - только при включенной настройке Accept browser pages without an origin.
  • Не публикуйте порт наружу (в интернет, общую сеть, контейнер с пробросом) без дополнительной защиты на уровне reverse-proxy: токен - один долгоживущий секрет, а инструменты за ним читают и правят метаданные, BSL, запускают отладку и работают с информационной базой.
  • Инструменты могут менять исходники, метаданные и информационные базы. Используйте Read-only пресет для анализа чужого проекта, держите проект в VCS перед правками, отключайте деструктивные операции если они не нужны.
  • evaluate_expression и execute_query выполняют BSL в живой сессии 1С - это сознательная возможность для отладки и инспекции, не дефект.

Что НЕ считается уязвимостью

  • Поведение инструментов по назначению (запись BSL, удаление объекта через delete_metadata_object с подтверждением, update_database) - это функциональность, а не нарушение безопасности.
  • Открытый ответ /health из трех полей (status, phase, edt_version) без токена: по нему установочные скрипты и мониторинг узнают, что сервер жив.
  • Доступ AI-ассистента к данным проекта - это и есть назначение MCP-сервера; ограничивается пресетами и политикой AI-клиента.

Уязвимости в зависимостях

Зависимости - Eclipse/EDT platform, OSGi runtime, bundled libs (snakeyaml, jsoup, copy-down). Уязвимости в них сообщайте в соответствующие upstream-проекты; мы обновляем bundled libs при выходе патчей.

There aren't any published security advisories