Skip to content

Fix: close Code scanning alerts — parse counts without narrowing, keep SARIF to gate severities - #12

Merged
DevOps-spb-ru merged 2 commits into
mainfrom
fix/code-scanning-alerts
Sep 22, 2026
Merged

DevOps-spb-ru merged 2 commits into
mainfrom
fix/code-scanning-alerts

Conversation

@DevOps-spb-ru

Copy link
Copy Markdown
Owner

Что сделано

Закрыты 7 открытых алертов Code scanning (3 CodeQL + 4 Trivy).

  • CodeQL go/incorrect-integer-conversion (high, три места): число подключений и строк из вывода
    psql разбиралось сужением int64 → int (int(parseInt64(...))). Добавлен parseCount
    (internal/pg/client.go): значение вне диапазона int трактуется как 0, а не обрезается;
    применён в Sessions, TerminateBackends и ListDatabases. Разбор закрыт табличным тестом
    TestParseCount и fuzz-целью FuzzParseCount.
  • Trivy (4 алерта): причина — trivy-action в формате sarif снимает TRIVY_SEVERITY, пока не задан
    limit-severities-for-sarif, поэтому в GitHub Security попадало то, чего «ворота» не видят.
    Вход задан в обоих SARIF-шагах trivy-scan.yml, во fs-шаге добавлен ignore-unfixed: true:
    уровни отчёта совпадают с «воротами» (CRITICAL/HIGH без исправления). Сами находки — вне области
    по SECURITY.md: otel v1.44.0 во встроенном сканере образа cio (в aquasec/trivy:0.74.0,
    последнем релизе, в v0.72.0 было v1.43.0) и неиспользуемый x/crypto/openpgp в fs-скане
    sqlbrc (пакет не импортируется, govulncheck достижимости не видит, фикса нет).
  • Политика отчётности уточнена: README.md, SECURITY.md, .trivyignore; запись в
    SQL backup restore clone/CHANGELOG.md (раздел 0.4.0, «Исправлено»).

Тип изменения

  • Исправление
  • CI/инфраструктура
  • Документация

Как проверено

  • gofmt -l cmd internal — пусто
  • go vet ./...
  • go test ./... -count=1
  • golangci-lint run ./... (.work/lint-docker.ps1, v2.13.2) — 0 issues.
  • Проверка на живом окружении: Trivy CLI на образе cio и на fs-дереве sqlbrc — без --severity
    находка есть, с уровнями ворот её нет; fuzz-цель FuzzParseCount (20 с, 8.77M execs, падений нет)
  • Обновлены README.md и CHANGELOG.md затронутого инструмента
  • Если затронуты CI, зависимости или документы репозитория — обновлены матрицы workflow, SECURITY.md, README.md
  • При релизе: секция CHANGELOG.md совпадает с тегом <инструмент>-vX.Y.Z (не применимо: релиза нет)

Дополнительно: .work/build-and-test-sqlbrc.ps1 — BUILD AND TEST OK; python .work/validate-workflows.py —
6 файлов OK; actionlint — пусто; zizmor — No findings to report.; python .work/check-doc-links.py —
10 ссылок, битых 0. go test -race локально не запускается (-race requires cgo), шаг остаётся в CI.

Влияние и риски

  • Изменения пользовательского поведения: нет. На корректных значениях psql результат тот же; при значении
    вне диапазона int счётчик теперь 0 вместо обрезанного числа.
  • Обратная совместимость: сохраняется — флаги CLI, формат JSON-отчёта и коды возврата не затронуты.
  • Отчётность: в GitHub Security уходят уровни, которые видит «ворота» (CRITICAL/HIGH без исправления);
    достижимость уязвимостей по-прежнему проверяет govulncheck, правила — CodeQL.

Sessions, TerminateBackends и ListDatabases сужали значение из psql до int (int(parseInt64(...))): CodeQL отмечал go/incorrect-integer-conversion. Добавлен parseCount: мусор, отрицательное число и переполнение int трактуются как 0, а не обрезаются. Разбор закрыт табличным тестом TestParseCount и fuzz-целью FuzzParseCount.
trivy-action в формате sarif снимает TRIVY_SEVERITY, пока не задан limit-severities-for-sarif, поэтому в GitHub Security попадали находки LOW/UNKNOWN, которых ворота не видят. Вход задан в обоих SARIF-шагах trivy-scan.yml, во fs-шаге добавлен ignore-unfixed: true. Политика отчётности уточнена в README.md, SECURITY.md и .trivyignore.
@DevOps-spb-ru DevOps-spb-ru self-assigned this Sep 22, 2026
@DevOps-spb-ru
DevOps-spb-ru merged commit de73d9f into main Sep 22, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant