# 🧹 Ловить уязвимости в зависимостях шагом гейта - **Тип:** 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`. Решение, ронять ли гейт на уязвимости без исправления, принимает человек.