Skip to content

Commit 04815a1

Browse files
davidkonigsbergdevin-ai-integration[bot]fern-pr-bot
authored
chore(deps): bump generator/seed base images to clear repeatable CVEs (#15804)
* chore: bump Node base images to 24.15.0 LTS for openssl April 2026 CVE fixes Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com> * chore: revert Node major bumps; keep cache-busting tweak only Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com> * chore(ts-seed): keep apt-get upgrade (revert dist-upgrade) and use autoremove --purge for cache busting Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com> * chore(ts-seed): standardize on dist-upgrade to match pydantic-model and ts-sdk-cli Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com> * chore: bump composer (php-sdk) and Go/golangci-lint (go-seed) base images for CVE fixes Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com> * chore: revert Node-image cache-bust changes (do not fix Node-bundled OpenSSL CVEs) Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com> * chore(python-sdk-generator): bump Node 20.19.4 -> 22.22 and dist-upgrade Debian trixie packages Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com> * chore: bump ts-sdk-validator Node 20 -> 22.22, php-model composer 2.7.9 -> 2.9.7 * test(ete): bump diff.test.ts timeout 20s -> 60s to absorb CI runner load Co-Authored-By: David Konigsberg <davidakonigsberg@gmail.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: davidkonigsberg <konigsberg@buildwithfern.com>
1 parent 9754329 commit 04815a1

10 files changed

Lines changed: 47 additions & 12 deletions

File tree

docker/seed/Dockerfile.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ FROM docker:29.4.1-dind-alpine3.23
1212
COPY --from=wiremock-pull /wiremock.tar /wiremock.tar
1313

1414
# Apply the latest APK security patches available for the base image
15-
RUN apk update && apk upgrade --no-cache
15+
RUN apk update && apk upgrade --no-cache --available
1616

1717
# Install Go (multi-arch: supports both amd64 and arm64)
18-
ENV GO_VERSION=1.23.8
18+
ENV GO_VERSION=1.26.3
1919
RUN set -eux; \
2020
ARCH="$(uname -m)"; \
2121
case "${ARCH}" in \
@@ -34,7 +34,7 @@ ENV PATH="/usr/local/go/bin:${PATH}" \
3434
RUN mkdir -p "${GOPATH}/src" "${GOPATH}/bin"
3535

3636
# Install golangci-lint
37-
ENV GOLANGCI_LINT_VERSION=v2.10.1
37+
ENV GOLANGCI_LINT_VERSION=v2.12.2
3838
RUN wget -O- -nv https://golangci-lint.run/install.sh | sh -s -- -b /usr/local/bin ${GOLANGCI_LINT_VERSION}
3939

4040
# Create entrypoint script to start dockerd and wait until it is ready

generators/php/model/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
FROM node:22.22-alpine3.23 AS node
2-
FROM composer:2.7.9
2+
FROM composer:2.9.7
33

44
ENV YARN_CACHE_FOLDER=/.yarn
55
ARG SENTRY_DSN
@@ -9,7 +9,7 @@ ENV SENTRY_DSN=$SENTRY_DSN
99
ENV SENTRY_ENVIRONMENT=$SENTRY_ENVIRONMENT
1010
ENV SENTRY_RELEASE=$SENTRY_RELEASE
1111

12-
RUN apk update && apk upgrade --no-cache
12+
RUN apk update && apk upgrade --no-cache --available
1313
RUN apk --no-cache add bash curl git zip
1414
RUN git config --global user.email "115122769+fern-api[bot]@users.noreply.github.com" && \
1515
git config --global user.name "fern-api"

generators/php/sdk/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
FROM node:22.22-alpine3.23 AS node
2-
FROM composer:2.7.9
2+
FROM composer:2.9.7
33

44
ENV YARN_CACHE_FOLDER=/.yarn
55
ARG SENTRY_DSN
@@ -9,7 +9,7 @@ ENV SENTRY_DSN=$SENTRY_DSN
99
ENV SENTRY_ENVIRONMENT=$SENTRY_ENVIRONMENT
1010
ENV SENTRY_RELEASE=$SENTRY_RELEASE
1111

12-
RUN apk update && apk upgrade --no-cache
12+
RUN apk update && apk upgrade --no-cache --available
1313
RUN apk --no-cache add bash curl git zip
1414
RUN git config --global user.email "115122769+fern-api[bot]@users.noreply.github.com" && \
1515
git config --global user.name "fern-api"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- summary: |
2+
Bump the php-sdk container's `composer` base image from `composer:2.7.9`
3+
(Alpine 3.20, PHP 8.3.12) to `composer:2.9.7` (Alpine 3.22, current PHP),
4+
addressing the Alpine 3.20 EOL alert and the PHP 8.3.12 CVEs
5+
(CVE-2024-8932, CVE-2024-11236, CVE-2025-1861), and force a fresh
6+
`apk upgrade` so the rebuilt image picks up the patched openssl 3.5.6-r0
7+
from Alpine 3.23.4 (CVE-2026-31789).
8+
type: chore
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
- summary: |
2+
Bump the php-model container's `composer` base image from `composer:2.7.9`
3+
(Alpine 3.20, PHP 8.3.12) to `composer:2.9.7` (Alpine 3.22, current PHP),
4+
mirroring the php-sdk bump. Addresses the Alpine 3.20 EOL alert and the
5+
PHP 8.3.12 CVEs (CVE-2024-8932, CVE-2024-11236, CVE-2025-1861), and
6+
standardizes on `apk upgrade --no-cache --available` for cache invalidation.
7+
type: chore

generators/python/sdk/Dockerfile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Stage 1: Copy Node.js from official image
2-
FROM node:20.19.4-slim AS node
2+
FROM node:22.22-bookworm-slim AS node
33

44
# Stage 2: Base Python image with dependencies
55
FROM python:3.13.7-slim AS python-base
@@ -10,7 +10,11 @@ COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules
1010
RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && \
1111
ln -s /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx
1212

13-
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl git && rm -rf /var/lib/apt/lists/*
13+
RUN apt-get update \
14+
&& apt-get -y --no-install-recommends dist-upgrade \
15+
&& apt-get install -y --no-install-recommends ca-certificates curl git \
16+
&& apt-get -y autoremove \
17+
&& rm -rf /var/lib/apt/lists/*
1418
RUN node --version
1519
RUN npm --version
1620

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# yaml-language-server: $schema=../../../../../fern-changes-yml.schema.json
2+
3+
- summary: |
4+
Bump the python-sdk container's Node.js stage from `node:20.19.4-slim`
5+
(Node 20 went EOL March 24, 2026) to `node:22.22-bookworm-slim`, and
6+
apply latest Debian trixie security updates at build time so OS-level
7+
package CVEs are picked up. Addresses CVE-2025-55130 (Node 20.19.4
8+
permission-model symlink bypass) and the OS-level CVE-2026-31789
9+
against `openssl 3.5.1-1`.
10+
type: chore
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
- summary: |
2+
Bump the typescript-sdk-validator container's `node:20-slim` base image
3+
to `node:22.22-bookworm-slim`. Node 20 went EOL March 24, 2026, and the
4+
container was carrying the Node 20 EOL alert plus CVE-2025-55130
5+
(Node 20 permission-model symlink bypass).
6+
type: chore

generators/typescript/sdk/validator/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:20-slim
1+
FROM node:22.22-bookworm-slim
22

33
RUN apt-get update \
44
&& apt-get install -y --no-install-recommends ca-certificates git \

packages/cli/ete-tests/src/tests/diff/diff.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ it("breaking", async ({ signal }) => {
3232
expect(result.stdout).toMatchSnapshot();
3333
expect(result.exitCode).toBe(1);
3434
}
35-
}, 20_000);
35+
}, 60_000);
3636

3737
it("non-breaking", async ({ signal }) => {
3838
const nonBreakingChangeDirs = await readdir(NON_BREAKING_FIXTURES_DIR, { withFileTypes: true });
@@ -50,4 +50,4 @@ it("non-breaking", async ({ signal }) => {
5050
expect(result.stdout).toMatchSnapshot();
5151
expect(result.exitCode).toBe(0);
5252
}
53-
}, 20_000);
53+
}, 60_000);

0 commit comments

Comments
 (0)