chore(deps): bump generator/seed base images to clear repeatable CVEs#15804
Conversation
…E fixes Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com>
Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com>
…toremove --purge for cache busting Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com>
…nd ts-sdk-cli Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com>
🌱 Seed Test SelectorSelect languages to run seed tests for:
How to use: Click the ⋯ menu above → "Edit" → check the boxes you want → click "Update comment". Tests will run automatically and snapshots will be committed to this PR. |
…ages for CVE fixes Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com>
…OpenSSL CVEs) Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com>
…ade Debian trixie packages Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com>
|
PHP and python looks good |
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
SDK Generation Benchmark ResultsComparing PR branch against median of 5 nightly run(s) on Full benchmark table (click to expand)
main (generator): generator-only time via --skip-scripts (includes Docker image build, container startup, IR parsing, and code generation — this is the same Docker-based flow customers use via |
Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com>
Description
Linear ticket: Refs
Targets repeatable Critical/High CVEs flagged by Vanta / AWS ECR scans on five generator + seed containers, with a deliberately narrow diff. Each container gets bumped to a base image / toolchain version that ships the patched dependency:
php-sdk-generatorandphp-model— both move off Alpine 3.20 (EOL) + PHP 8.3.12 by bumping thecomposerbase image.go-seed— bumps the Go toolchain andgolangci-lintto versions that vendor patchedgolang.org/x/crypto,google.golang.org/grpc, and stdlib.python-sdk-generator— moves off the EOL Node 20 line, and adds a Debian trixie securitydist-upgradestep so OS-levelopenssland friends are pulled in at build time.typescript-sdk-validator— moves off the EOL Node 20 line.The
--availableflag on theapk upgradelines is purely a cache-bust — it forces BuildKit to re-run the upgrade against current Alpine indexes on the next build, so the rebuilt images actually pick up any backported security packages that landed since the previous cache hit. No behavioral change otherwise.Changes Made
docker/seed/Dockerfile.go:GO_VERSION 1.23.8→1.26.3(released 2026-05-07; coversCVE-2026-27143,CVE-2025-68121, and other stdlib fixes).GOLANGCI_LINT_VERSION v2.10.1→v2.12.2(built against patchedgolang.org/x/cryptoandgoogle.golang.org/grpc, addressingCVE-2024-45337andCVE-2026-33186).apk upgrade --no-cache→apk upgrade --no-cache --available(cache-bust on the alpine 3.23 base).generators/php/sdk/Dockerfile:composer:2.7.9→composer:2.9.7— moves base from Alpine 3.20 (EOL) onto Alpine 3.22, and from PHP 8.3.12 onto current PHP. ClearsALPINE_LINUX_3_20,php/php:8.3.12/CVE-2024-8932,CVE-2024-11236,CVE-2025-1861.--availablecache-bust on theapk upgradeline.generators/php/model/Dockerfile:composer:2.7.9→composer:2.9.7, mirroring thephp-sdkbump (this container shows the same Alpine 3.20 EOL alert and PHP 8.3.12 CVEs in Vanta).--availablecache-bust on theapk upgradeline.generators/python/sdk/Dockerfile:node:20.19.4-slim→node:22.22-bookworm-slim. Node 20 went EOL on 2026-03-24; this also clearsnodejs/node:20.19.4/CVE-2025-55130(permission-model symlink bypass).apt-get -y --no-install-recommends dist-upgrade && apt-get -y autoremoveto the existingapt-get installstep. Pulls patchedopenssl(3.5.1-1→3.5.5-1~deb13u2fromtrixie-security), clearing the OS-levelopenssl:3.5.1/CVE-2026-31789finding.generators/typescript/sdk/validator/Dockerfile:node:20-slim→node:22.22-bookworm-slim. Same Node 20 EOL +CVE-2025-55130rationale aspython-sdk-generator. The container only runscorepack+pnpm install --ignore-scriptsfor cache-warming; both are fine on Node 22.Out of scope (will not be fixed by this PR)
openssl/openssl:3.5.5/CVE-2026-31789(and the rest of the April 2026 OpenSSL advisory CVEs) flagged on every Node-22 image — these are Node's bundled OpenSSL, not the OS-level package. The upstream fix innodejs/node#62629merged tomain2026-04-10 withlts-watch-v22.x/lts-watch-v24.x, but no releasednode:22.xornode:24.xships OpenSSL 3.5.6 yet (onlynode:26does). Will land here as soon as the upstream backport ships in a 22.x patch release. Note: thenode:22.22-bookworm-slimintroduced forpython-sdk-generatorandtypescript-sdk-validatorin this PR will start showing this finding too — it's a strict trade against the Node 20 EOL CVE it removes.google.golang.org/grpc:v1.78.0/CVE-2026-33186flagged onpython-seed— this is vendored inside thedockerd/containerdbinaries shipped indocker:29.4.1-dind-alpine3.23.29.4.1is the latest published docker tag; will need to wait for upstream Docker to roll a release with patchedgrpc.gnutls28:3.8.9/CVE-2026-33845onpython-sdk-generator— Debian trixie has no fixed version yet (current candidate3.8.9-3+deb13u2is still flagged; onlysidhas the fix in3.8.13-1). Thedist-upgradein this PR will pull whatever patched gnutls28 trixie-security ships once it lands.generators/rust/{sdk,model}/Dockerfileis onrust:1.82-alpine3.20(Alpine 3.20 EOL). Therust:1.82line was never published foralpine3.23, so clearing the EOL alert requires a Rust minor-version bump (1.82 → 1.95). Tracked separately to keep blast radius scoped.Testing
php-sdkandphp-modelALPINE_LINUX_3_20 + 3 PHP 8.3.12 CVEs each;go-seedGo toolchain + golangci-lint dependency CVEs;python-sdk-generatorNode 20.19.4 CVE + OS-level openssl 3.5.1 CVE;typescript-sdk-validatorNode 20 EOL alert + CVE-2025-55130.Reviewer checklist (riskiest items)
composer:2.7.9→2.9.7on bothphp-sdkandphp-model— multi-minor jump on the PHP runtime. Worth a smoke test against a generated PHP SDK and a generated PHP model.1.26.3— released 2026-05-07. Security-driven bump; no language changes vs. 1.25.x for our use, but worth a smoke test on a generated Go SDK.golangci-lint v2.10.1→v2.12.2—v2.11.0movedrevive's package-naming rule out ofvar-naminginto a separate (off-by-default)package-namingrule. Net effect should be fewer lint failures on generated Go SDKs, not more.python-sdk-generatorandtypescript-sdk-validatorNode bump —node:22.22-bookworm-slimis already used bypython-v2/sdkandpython-v2/pydantic-model, so the runtime is proven. Bumping does open a new Node-bundled OpenSSL finding on these two containers; called out above.dist-upgradeordering inpython-sdk-generator— runs beforeapt-get install ca-certificates curl git, so the install step uses freshly-updated indexes and pulls patched versions of any new transitive deps it brings in.Link to Devin session: https://app.devin.ai/sessions/9164396908124e5d80e04a0e90f1ceca