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