Skip to content

fix(docker): Bump python base image to 3.14.10-slim-bookworm - #721

Merged
NicoHinderling merged 1 commit into
mainfrom
vuln-3216/ca-certificates
Oct 27, 2026
Merged

NicoHinderling merged 1 commit into
mainfrom
vuln-3216/ca-certificates

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

The launchpad image's base, image-mirror-library-python:3.14.4-slim-bookworm, ships ca-certificates 20250419~deb12u1, which still trusts the compromised eMudhra emSign ECC Root CA - G3. The JDK's keystore (/etc/ssl/certs/java/cacerts) is built from that bundle, so it inherits the root. Tracked in VULN-3216.

  • Moves every 3.14.4-slim-bookworm reference (Dockerfile, scripts/strip/Dockerfile.cctools, both e2e Dockerfiles) to 3.14.10-slim-bookworm, which ships ca-certificates 20250419~deb12u2 without the root.
  • This replaces this PR's earlier approach (an explicit ca-certificates install plus a forced Java keystore rebuild). With a fixed base, the keystore is created clean when openjdk-17-jre-headless is installed, so the Dockerfile needs no CA handling.

Depends on image-mirror#44, which adds the 3.14.10-slim-bookworm mirror. The image builds here will fail until it merges and syncs.

Checked locally: I built the main image's runtime stage (through uv sync and the source copies) on the upstream python:3.14.10-slim-bookworm digest that the mirror pins. Results:

  • Python is 3.14.10, ca-certificates is 20250419~deb12u2 and libbrotli1 is 1.0.9-2+deb12u1 (the CVE-2026-111497 fix).
  • The Java keystore has 148 entries, matching the system bundle, with no emSign G3.
  • launchpad imports with the locked deps.

I skipped the libdispatch build stage (unchanged, and git clone was blocked in my sandbox) and the scripts/deps download step.

.python-version still says 3.14.4. It only drives setup-python in CI, so I left it out of this PR.

via Geoff Goldsmith.

--

View Junior Session [Sentry]

@linear-code

linear-code Bot commented Oct 27, 2026

Copy link
Copy Markdown

VULN-3216

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread Dockerfile Outdated
The 3.14.4-slim-bookworm mirror ships ca-certificates 20250419~deb12u1,
which still trusts the compromised eMudhra emSign ECC Root CA - G3, and the
Java keystore built from it inherits the root. 3.14.10-slim-bookworm ships
20250419~deb12u2, so both the system bundle and the keystore come out clean
without any CA handling in the Dockerfile.

Needs getsentry/image-mirror#44 to sync first.

Refs VULN-3216

Co-Authored-By: Geoff Goldsmith <geoff.goldsmith@sentry.io>
@sentry-junior
sentry-junior Bot force-pushed the vuln-3216/ca-certificates branch from c8f15f7 to f6f6b51 Compare October 27, 2026 19:24
@sentry-junior sentry-junior Bot changed the title fix(docker): Upgrade ca-certificates and rebuild the Java keystore fix(docker): Bump python base image to 3.14.10-slim-bookworm Oct 27, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f6f6b51. Configure here.

Comment thread Dockerfile

# Use Python 3.14 slim image
FROM ghcr.io/getsentry/image-mirror-library-python:3.14.4-slim-bookworm
FROM ghcr.io/getsentry/image-mirror-library-python:3.14.10-slim-bookworm

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing certificate and keystore remediation

High Severity

The runtime apt-get install still omits ca-certificates and never rebuilds /etc/ssl/certs/java/cacerts. Only the Python base tag changed, so openjdk-17-jre-headless can still create a keystore from the unpatched bundle and leave the compromised emSign ECC Root CA - G3 root trusted.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f6f6b51. Configure here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not an issue with the new base. python:3.14.10-slim-bookworm already ships ca-certificates 20250419~deb12u2 (148 certs, no emSign_ECC_Root_CA_-_G3.crt), so there is no unpatched bundle for ca-certificates-java to build from. The keystore is generated fresh when openjdk-17-jre-headless installs on this base; building the runtime stage gives /etc/ssl/certs/java/cacerts with 148 entries and no emSign G3. The explicit upgrade/rebuild was dropped on purpose in favor of the fixed base image.

@NicoHinderling

Copy link
Copy Markdown
Contributor

nice , i think you'll need getsentry/image-mirror#44 for CI to go green

@NicoHinderling
NicoHinderling merged commit 3abd96b into main Oct 27, 2026
26 of 30 checks passed
@NicoHinderling
NicoHinderling deleted the vuln-3216/ca-certificates branch October 27, 2026 19:51
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