Files
transcriber/tasks/items/npm-deps-vulnerability-scan.md
T

3.8 KiB
Raw Blame History

🧹 Проверять уязвимости в зависимостях приложения

  • Тип: chore
  • Категория: Очередь — Заведена урожаем ревью и встала в конец машинально: место в плане стройки назначает человек.
  • Зачем: Зависимости приложения пришли задачей spa-skeleton, а сканера у них нет: govulncheck смотрит только модули Go. Ни проверки, ни объявленного исключения — непроверенная поверхность, о которой никто не решал

Набор проверок судит уязвимости в зависимостях Go — шаг vulns, и судит он достижимость из кода. У зависимостей приложения такого шага нет: govulncheck о них не знает вовсе, а перечень «чего в гейте намеренно нет» их не называет. То есть это не объявленный долг, а пробел.

Находка ревью задачи spa-skeleton 2026-08-15; ручной прогон сканера на сегодняшнем дереве нашёл ноль уязвимостей, поэтому спешки нет — есть отсутствие правила.

Затрагивает

  • Taskfile.yml — шаг набора проверок: свой либо расширение front;
  • CLAUDE.md, раздел «Гейт» — состав шагов, словарь кодов исхода и перечень сетезависимых шагов;
  • docs/conventions/go-linters.md, «Хранилище, документы, секреты, зависимости» — строка о том, чем механизирована проверка;
  • web/package.json, web/package-lock.json — источник, по которому судит сканер.

Критерии приёмки

  • Уязвимость в зависимости приложения роняет набор проверок. Оракул — временно закрепить пакет с известной уязвимостью и увидеть красный шаг.
  • Отказ сети и реестра на этом шаге приходит кодом окружения, а красная находка — кодом дрейфа. Оракул — прогон с пустым кэшем без сети даёт код 3, находка даёт код 1.
  • Шаг не удлиняет обычный прогон заметно. Оракул — замер времени task gate до и после.
  • Решение записано там, где его будут искать: либо шаг назван в составе гейта, либо исключение названо в перечне «чего в гейте намеренно нет» с причиной. Оракул — чтение CLAUDE.md, раздел «Гейт».

Рамки

Разбирать сами уязвимости и обновлять зависимости эта задача не берётся — она заводит проверку. Выбор между «сканировать» и «объявить исключение» уже сделан решением владельца от 2026-08-15 в пользу проверки; если сканер окажется шумным на зависимостях сборки, сузить его до тех, что уезжают в браузер, — правка этой же задачи, а не повод отказаться от проверки.