Files
laude/docs/SECURITY_TRIAGE.md

3.4 KiB
Raw Blame History

Security triage

Дата последнего triage: 2026-06-06

Этот файл фиксирует текущий статус npm audit, принятые решения по dependency-upgrade и минимальные правила перед релизом. Он не заменяет регулярное обновление зависимостей: цель в том, чтобы не терять контекст между релизами и отличать runtime-риск от build-chain риска.

Текущий статус

npm run verify выполняет:

  • typecheck;
  • tests;
  • lint;
  • build;
  • audit summary.

Наблюдаемый audit snapshot после upgrade:

  • 0 vulnerabilities;
  • npm run verify проходит полностью;
  • npm run dist:dir собирает unpacked Windows build.

Выполненные обновления

  • electron обновлен до 42.3.3;
  • electron-builder обновлен до 26.15.0;
  • electron-vite обновлен до 5.0.0;
  • vite обновлен до 7.3.5;
  • @vitejs/plugin-react обновлен до 5.2.0;
  • electron-updater обновлен до 6.8.9;
  • esbuild обновлен до 0.28.0.

vite оставлен на major 7, а не поднят до 8, потому что актуальный electron-vite@5.0.0 объявляет peer range ^5.0.0 || ^6.0.0 || ^7.0.0. Переход на Vite 8 стоит делать отдельным шагом после совместимого релиза electron-vite.

Runtime baseline

Electron является runtime-платформой приложения, поэтому его audit-риск был самым важным. После обновления runtime-риск из audit закрыт, но перед релизом все равно нужен ручной smoke test Electron-поведения.

Текущие mitigations:

  • sandbox: true;
  • contextIsolation: true;
  • nodeIntegration: false;
  • строгий preload API через contextBridge;
  • IPC runtime validation;
  • CSP в renderer index.html;
  • allowlist для внешних URL;
  • deny-by-default permission handlers;
  • запрет webview attach;
  • renderer error/unhandled rejection reporting в main logs.

Build-chain baseline

electron-builder, electron-vite, vite и esbuild обновлены отдельным шагом от runtime upgrade. npm run dist:dir подтверждает, что packaged build создается после обновления build-chain.

Перед публикацией installer все равно нужно проверить:

  • NSIS installer build через npm run dist;
  • запуск установленного приложения;
  • сохранение данных в %APPDATA%\Exercise Reminder\;
  • auto-update metadata и update-channel;
  • импорт/экспорт данных;
  • tray behavior;
  • main window и reminder window;
  • Dota 2 GSI install/uninstall и callback listener.

Release rule

Перед релизом:

  • npm run verify;
  • npm run dist;
  • smoke test installed app;
  • проверка update-channel;
  • повторный npm audit.

Если новый audit снова сообщает high runtime issue, релиз нужно считать blocked, пока риск не разобран отдельно.