- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
36 lines
2.6 KiB
Markdown
36 lines
2.6 KiB
Markdown
# 🧹 Ловить уязвимости в зависимостях шагом гейта
|
|
|
|
- **Тип:** chore
|
|
- **Категория:** Очередь — govulncheck находит две достижимые уязвимости, а гейт о нём не знает: о третьей узнать будет неоткуда.
|
|
- **Зачем:** 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`. Решение, ронять ли гейт на
|
|
уязвимости без исправления, принимает человек.
|