Skip to content

fix(security): distrust emSign root in tiles image - #105

Merged
John McCall (lowlydba) merged 3 commits into
mainfrom
lowlydba-104-emsign-ca-remediation
Oct 22, 2026
Merged

John McCall (lowlydba) merged 3 commits into
mainfrom
lowlydba-104-emsign-ca-remediation

Conversation

@lowlydba

Copy link
Copy Markdown
Contributor

Context

OvertureMaps/ops-team#618 tracks the org-wide response to the compromised intermediates under emSign ECC Root CA - G3. This PR covers the tiles image.

Summary

The image runs on amazoncorretto:22, which is past end of life, and its system trust store still trusts G3. Corretto's Java trust store is a symlink into it, so Java and s5cmd share one trust decision.

  • The base image moves to amazoncorretto:25-al2023, the current LTS
  • ca-certificates is upgraded at build time, so a stale base tag still picks up root store updates
  • G3 goes into the p11-kit blocklist. The newest AL2023 package (2025.2.76-1.0.amzn2023.0.3) still trusts it, so the upgrade alone doesn't remove it

Why 25 and not 21?

run.sh launches the theme profiles from source, and each one depends on OvertureProfile.java. That's multi-file source launch (JEP 458), which needs Java 22+.

Warning

Any TLS endpoint chaining to G3 now fails from this container. At runtime it talks to S3 and the DuckDB extension repository, and neither chains to emSign.

Closes #104

Testing

Checked the trust stores in a no-cache amd64 build:

  • keytool -list -cacerts drops from 143 to 142 entries, with no emsigneccrootca-g3
  • trust list reports G3 as distrusted. The other emSign roots stay trusted

The arm64 build shows the same keytool result.

Post-merge (manual)

  • Clear the Actions cache with gh cache delete --all -R OvertureMaps/overture-tiles, then publish a release so the image builds without cached layers
  • Confirm AWS Batch pulls the new :latest digest

amazoncorretto:22 is past end of life. Corretto 25 is the current LTS. Java 21 is not viable: run.sh launches profiles via multi-file source launch (JEP 458, Java 22+), and every theme profile depends on OvertureProfile.java.

Refs #104

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: John McCall <john@overturemaps.org>
Pull the newest ca-certificates available for the base image's AL2023 release so root store updates land without waiting for a new base image tag.

Refs #104

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: John McCall <john@overturemaps.org>
The newest AL2023 ca-certificates (2025.2.76-1.0.amzn2023.0.3) still trusts this root, and Corretto's cacerts links to the system store. Add the root to the p11-kit blocklist so update-ca-trust drops it from the system bundle and Java cacerts.

SHA256 86:A1:EC:BA:08:9C:4A:8D:3B:BE:27:34:C6:12:BA:34:1D:81:3E:04:3C:F9:E8:A8:62:CD:5C:57:A3:6B:BE:6B

Refs #104

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: John McCall <john@overturemaps.org>
@lowlydba
John McCall (lowlydba) requested a review from a team as a code owner October 22, 2026 15:11
Copilot AI balanced review requested due to automatic review settings October 22, 2026 15:11

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🛑

@lowlydba
John McCall (lowlydba) merged commit ca7d8f6 into main Oct 22, 2026
10 checks passed
@lowlydba
John McCall (lowlydba) deleted the lowlydba-104-emsign-ca-remediation branch October 22, 2026 15:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The Java 22-to-25 runtime upgrade warrants human confirmation of application smoke-test results beyond the documented trust-store checks.

No open issues 🎉

What changed in this PR

Updates the tiles image to distrust emSign ECC Root CA - G3 in both system and Java trust stores, supporting the organization-wide security response.

Changes:

  • Moves to amazoncorretto:25-al2023, preserving multi-file Java source launch support.
  • Upgrades ca-certificates and regenerates trust stores during the build.
  • Adds the G3 certificate to the system blocklist.
File Description
Dockerfile Updates Java and applies certificate upgrades and distrust settings.
certs/​blocklist/​emsign-ecc-root-ca-g3.pem Adds the G3 certificate with its fingerprint and distrust rationale.

Review effort: Balanced

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.

[SECURITY] Rebuild tiles image for emSign CA removal

3 participants