[security] Образ awg-dash содержит 21 HIGH + 1 CRITICAL (Go stdlib 1.25.14, golang.org/x/crypto 0.42.0) #61
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Найдено: CI-гейт
image-scan(trivy, issue #17) на образе, собранном изdeploy/Dockerfile(#18). Блокирует публикациюstaging-<sha>и любой релиз.Результат скана (run #49, job
image-scan)Root.Mkdir(All)— follow junctions), CVE-2026-111943 (HIGH, crypto/x509 MITM), CVE-2026-78667 (HIGH, HTTP Range DoS), CVE-2026-97031 (HIGH, crypto/tls ECH DoS)golang.org/x/cryptoСсылка на job: http://192.168.1.111:3000/embeddevio/awg-dash/actions/runs/49/jobs/140
Что нужно
deploy/Dockerfile(владелец #18) поднятьARG GO_IMAGE=golang:1.26-alpine(или новее) и обновить зависимостьgolang.org/x/cryptoв сборкеamneziawg-goдо>= 0.43.0(через-uили бамп fork'а).alpine:3.21→ текущая ветка с патчами.После фикса
Ничего в CI менять не нужно:
image-scan(trivy --severity HIGH,CRITICAL --ignore-unfixed --exit-code 1) пойдёт зелёным и jobpushопубликует192.168.1.111:3000/embeddevio/awg-dash:staging-<sha8>.Проверка локально (на build-хосте):
Refs #17, Refs #18
Статус на момент паузы: 5 HIGH вместо 22, корневая причина каждого шага установлена
Что закрыто (проверено на живом раннере, образ
staging-20db51b7/staging-cc3621a1)GO_IMAGEgolang:1.25 → golang:1.26-alpineapk upgrade), 66 пакетов чистоgolang.org/x/crypto0.42.0 — 1 HIGH + (после обновления БД trivy) ещё 4go get golang.org/x/crypto@v0.58.0в сборке amneziawg-gogolang.org/x/net0.45.0 — 16 HIGH (http2/idna/dnsmessage)go get golang.org/x/net@v0.62.0requirements.txt(>=2.8.0/>=1.2.3/>=78.1.1)Корень оставшихся 5 HIGH (важно, чтобы не искать заново)
После пинов trivy продолжал показывать urllib3 2.7.0 / msgpack 1.1.2 / setuptools 70.3.0. Проверка внутри самого образа (
pip listи поискMETADATA) дала факт: в venv стоят 1.2.4 / 2.8.0 / 84.2.1 — то есть исправленные.Источник ложных версий найден:
Trivy разбирает
pip/_vendor/vendor.txtи репортит вендоренные в pip пакеты как установленные (в--list-all-pkgsони идут безFilePath, в отличие от реальных*.dist-info/METADATA). Ни один из этих пакетов в образе не импортируется.Фикс (закоммичен в ветку PR #49, коммит
b69c3b6):py3-pipпереведён из runtime-пакета в.build-deps, после сборки venv удаляется; pip вычищается и из venv, и из системногоsite-packages. Runtime не должен содержать инсталлятор — заодно минус размер и минус поверхность атаки.Что НЕ проверено
Гейт на
b69c3b6не прогнан: работы по команде владельца приостановлены, раннер на 192.168.1.147 остановлен (docker stop gitea-runner-awg-repo). Ожидаемый исход —image-scanзелёный; если нет, смотреть новых находок в логе job'а (не веритьtotal_countартефактов — они не публикуются, #62).После зелёного
image-scanправок в CI не требуется —pushпойдёт сам, как только появится секретREGISTRY_TOKEN(write:package).