Files
transcriber/tasks/items/gate-dependency-vulnerabilities.md
T

36 lines
2.5 KiB
Markdown

# 🧹 Ловить уязвимости в зависимостях шагом гейта
- **Тип:** chore
- **Категория:** Очередь
- **Зачем:** govulncheck находит две достижимые уязвимости в клиентах Yandex, а ни гейт, ни список «чего в гейте нет» о нём не знают: узнать о третьей будет неоткуда.
Обе найдены ревью задачи `pocketbase-storage` 2026-08-12 и достижимы из кода
распознавателя: `GO-2026-6061` в `google.golang.org/grpc` (исправлено в v1.82.1)
и `GO-2026-5764` в `aws-sdk-go-v2``aws/protocol/eventstream` (в v1.7.8) и
`service/s3` (в v1.97.3). Ни одну из них эта задача не вносила: `git diff
origin/master -- go.mod` их версий не касался.
## Затрагивает
- версии `google.golang.org/grpc`, `aws-sdk-go-v2/service/s3` и
`aws-sdk-go-v2/aws/protocol/eventstream` в `go.mod`;
- набор шагов `task gate` в `Taskfile.yml`;
- семантика гейта в `CLAUDE.md` — раздел «Гейт», список «что красит безусловно»
либо «чего в гейте намеренно нет».
## Критерии приёмки
- Обе объявленные уязвимости из кода недостижимы. Оракул — `govulncheck ./...`
печатает «No vulnerabilities found» либо оставляет только недостижимые.
- Новая достижимая уязвимость роняет гейт. Оракул — прогон `task gate` на
дереве с намеренно откаченной версией `grpc`: шаг краснеет с именем уязвимости.
- Место шага названо в `CLAUDE.md`: либо в перечне красящих безусловно, либо в
«чего в гейте нет» с указанием, кто тогда обязан его гонять. Оракул —
`task gate`, шаг `docs.py check`.
## Рамки
Обновление версий трогает клиентов Yandex — прогон на реальных ключах запрещён,
подставляй `internal/adapter/recognizer/memory.go`. Решение, ронять ли гейт на
уязвимости без исправления, принимает человек.