Пожалуйста, не открывай публичный issue для проблем безопасности. Вместо этого:
- воспользуйся приватным каналом GitHub — вкладка Security → Report a vulnerability (GitHub Security Advisories) в этом репозитории;
- либо напиши автору через профиль @moonlivedt-oss.
Опиши, что нашёл(ла), как воспроизвести и в чём потенциальный вред. Постараюсь ответить в разумный срок; после исправления — упомяну тебя в благодарностях (по желанию).
«Документация C++» — это расширение VS Code, которое читает локальные Markdown-файлы из папки
документации и рисует их в webview, а также (по желанию) в плавающем окне, внедряемом в оболочку
редактора через загрузчик custom-css. Оно не открывает сеть и не собирает телеметрию.
Основной вход данных — содержимое самих *.md-файлов проекта. Поэтому:
- Никакой сети. Расширение не грузит внешних ресурсов и не отправляет данные наружу. Позиция
и размер окна, отметки «изучено» и закладки хранятся в
localStorageэтой машины. - Экранирование содержимого. Заголовки и описания, вытащенные из файлов, экранируются перед
вставкой в HTML списка (кавычки и угловые скобки), чтобы имя файла или строка
#/>не могли внедрить разметку в панель. Это проверяется смоук-тестом. - Markdown без выполнения скриптов. Текст рендерится как разметка; встроенные в Markdown скрипты не исполняются.
- Только чтение. Расширение открывает файлы штатным API VS Code и не пишет в проект;
единственная запись — состояние UI в
localStorage.
Если ты нашёл(ла) способ добиться выполнения произвольного кода или разметки через содержимое файла документации, вынудить сетевой запрос или прочитать файлы вне папки документации — это как раз то, о чём стоит сообщить приватно.
Плавающее окно исполняется в оболочке VS Code через сторонний загрузчик — Custom UI Style
(subframe7536.custom-ui-style) или Custom CSS and JS (be5invis.vscode-custom-css). Сам
механизм внедрения (патч файлов воркбенча) реализуют эти расширения, а не данный проект.
Уязвимости самого механизма внедрения сообщай в их репозитории:
Custom UI Style ·
Custom CSS and JS. Боковая панель работает без
загрузчика и этого механизма не задействует.