Skip to content

Commit 4802e09

Browse files
fix: bump Zulu to 11.0.33 / 21.0.13 for eMudhra blocklist
Azul's out-of-cycle release of 2026-10-21 adds the compromised eMudhra intermediates to blocked.certs. azul/zulu-openjdk-debian has no tag with the fix yet, so fetch the Zulu CA build from cdn.azul.com, pinned by SHA-256 for amd64 and arm64. java.version now holds the Zulu build name. A build step fails if the fixed blocklist is missing from the jlinked JRE. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
1 parent 054d275 commit 4802e09

4 files changed

Lines changed: 62 additions & 6 deletions

File tree

‎java-11/Dockerfile‎

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,33 @@
1+
# Zulu build name, e.g. zulu11.54.107-ca-jdk11.0.13 (see java.version)
12
ARG JAVA_VERSION
23
ARG BASE_IMAGE
3-
FROM azul/zulu-openjdk-debian:${JAVA_VERSION} AS jre
4+
# The azul/zulu-openjdk-debian image has no tag with the eMudhra blocked.certs fix yet, so fetch the
5+
# Zulu CA build straight from Azul's CDN. The SHA-256 pins the download. jlink copies blocked.certs
6+
# from the JDK it runs, so it must be the fixed one.
7+
# TEMP: go back to azul/zulu-openjdk-debian once it publishes a tag with the fix.
8+
FROM debian:bookworm-slim AS jre
9+
ARG JAVA_VERSION
10+
ARG TARGETARCH
11+
# Update these together with java.version.
12+
ARG ZULU_SHA256_AMD64=64658a2be5140c2ffd571c0e09ac3b505a2be0d4654e09957b584b54b4dac8b5
13+
ARG ZULU_SHA256_ARM64=abed984a694d4da40662ec0bdfd2ecbe798bab1b8ce784d4f02d00479d53e802
414

515
# Needed for --strip-debug
6-
RUN apt-get -y update && apt-get -y upgrade libssl3 && apt-get -y install binutils
16+
RUN apt-get -y update && apt-get -y upgrade libssl3 && apt-get -y install binutils curl ca-certificates
17+
18+
RUN case "${TARGETARCH}" in \
19+
amd64) ZULU_ARCH=x64; ZULU_SHA256="${ZULU_SHA256_AMD64}" ;; \
20+
arm64) ZULU_ARCH=aarch64; ZULU_SHA256="${ZULU_SHA256_ARM64}" ;; \
21+
*) echo "unsupported arch ${TARGETARCH}" >&2; exit 1 ;; \
22+
esac \
23+
&& curl -fsSL -o /tmp/zulu.tar.gz "https://cdn.azul.com/zulu/bin/${JAVA_VERSION}-linux_${ZULU_ARCH}.tar.gz" \
24+
&& echo "${ZULU_SHA256} /tmp/zulu.tar.gz" | sha256sum -c - \
25+
&& mkdir -p /usr/lib/jvm \
26+
&& tar -xzf /tmp/zulu.tar.gz -C /usr/lib/jvm \
27+
&& ln -s "/usr/lib/jvm/${JAVA_VERSION}-linux_${ZULU_ARCH}" /usr/lib/jvm/zulu \
28+
&& rm /tmp/zulu.tar.gz
29+
ENV JAVA_HOME=/usr/lib/jvm/zulu
30+
ENV PATH=${JAVA_HOME}/bin:${PATH}
731

832
# Included modules cherrypicked from https://docs.oracle.com/en/java/javase/11/docs/api/
933
#
@@ -44,6 +68,10 @@ java.net.http,\
4468
jdk.zipfs\
4569
--output jre
4670

71+
# Fail the build if the fixed blocklist did not make it through jlink.
72+
# 7BA62FEC... is one of the fingerprints added by the 2026-10-21 out-of-cycle release.
73+
RUN grep -q 7BA62FEC54E9D040556FCA70A6A88F03761C178FA1F7CB8390A73076849F55A2 /jre/lib/security/blocked.certs
74+
4775
# Extract java SSL certs
4876
FROM gcr.io/distroless/java-base-debian12:debug AS ssl
4977

‎java-11/java.version‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
11.0.32.1-11.90
1+
zulu11.92.109-ca-jdk11.0.33

‎java-21/Dockerfile‎

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,33 @@
1+
# Zulu build name, e.g. zulu21.54.107-ca-jdk21.0.13 (see java.version)
12
ARG JAVA_VERSION
23
ARG BASE_IMAGE
3-
FROM azul/zulu-openjdk-debian:${JAVA_VERSION} AS jre
4+
# The azul/zulu-openjdk-debian image has no tag with the eMudhra blocked.certs fix yet, so fetch the
5+
# Zulu CA build straight from Azul's CDN. The SHA-256 pins the download. jlink copies blocked.certs
6+
# from the JDK it runs, so it must be the fixed one.
7+
# TEMP: go back to azul/zulu-openjdk-debian once it publishes a tag with the fix.
8+
FROM debian:bookworm-slim AS jre
9+
ARG JAVA_VERSION
10+
ARG TARGETARCH
11+
# Update these together with java.version.
12+
ARG ZULU_SHA256_AMD64=dd8cf0628cfb8c369b7d4fe96783e2b516482b37d2b3e140b208c91deabf1169
13+
ARG ZULU_SHA256_ARM64=783460592bc66c9290b14c32a537b29da812bd62ad53bf6cb565355bca7ea563
414

515
# Needed for --strip-debug
6-
RUN apt-get -y update && apt-get -y upgrade libssl3 && apt-get -y install binutils
16+
RUN apt-get -y update && apt-get -y upgrade libssl3 && apt-get -y install binutils curl ca-certificates
17+
18+
RUN case "${TARGETARCH}" in \
19+
amd64) ZULU_ARCH=x64; ZULU_SHA256="${ZULU_SHA256_AMD64}" ;; \
20+
arm64) ZULU_ARCH=aarch64; ZULU_SHA256="${ZULU_SHA256_ARM64}" ;; \
21+
*) echo "unsupported arch ${TARGETARCH}" >&2; exit 1 ;; \
22+
esac \
23+
&& curl -fsSL -o /tmp/zulu.tar.gz "https://cdn.azul.com/zulu/bin/${JAVA_VERSION}-linux_${ZULU_ARCH}.tar.gz" \
24+
&& echo "${ZULU_SHA256} /tmp/zulu.tar.gz" | sha256sum -c - \
25+
&& mkdir -p /usr/lib/jvm \
26+
&& tar -xzf /tmp/zulu.tar.gz -C /usr/lib/jvm \
27+
&& ln -s "/usr/lib/jvm/${JAVA_VERSION}-linux_${ZULU_ARCH}" /usr/lib/jvm/zulu \
28+
&& rm /tmp/zulu.tar.gz
29+
ENV JAVA_HOME=/usr/lib/jvm/zulu
30+
ENV PATH=${JAVA_HOME}/bin:${PATH}
731

832
# Included modules cherrypicked from https://docs.oracle.com/en/java/javase/21/docs/api/
933
#
@@ -44,6 +68,10 @@ java.net.http,\
4468
jdk.zipfs\
4569
--output jre
4670

71+
# Fail the build if the fixed blocklist did not make it through jlink.
72+
# 7BA62FEC... is one of the fingerprints added by the 2026-10-21 out-of-cycle release.
73+
RUN grep -q 7BA62FEC54E9D040556FCA70A6A88F03761C178FA1F7CB8390A73076849F55A2 /jre/lib/security/blocked.certs
74+
4775
# Extract java SSL certs
4876
FROM gcr.io/distroless/java-base-debian12:debug AS ssl
4977

‎java-21/java.version‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
21.0.12.1-21.52
1+
zulu21.54.107-ca-jdk21.0.13

0 commit comments

Comments
 (0)