Skip to content

Commit 02ddcc2

Browse files
committed
Stop trusting the compromised eMudhra intermediate CAs
Require Alpine ca-certificates 20261020-r0+ in the image, bump certifi to 2026.10.19, point Node at the system store with NODE_OPTIONS=--use-openssl-ca until Node ships its fix, and bump the bundled uv to 0.13.4.
1 parent e6093a2 commit 02ddcc2

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
## 2.11.2
44

5+
### Fixed: stop trusting the compromised eMudhra intermediate CAs
6+
7+
- The CLI and every tool in the Docker image now reject certificates issued
8+
from the compromised eMudhra intermediate CAs.
9+
- Bumped `certifi` to `2026.10.19` and the image's bundled `uv` to `0.13.4`.
10+
511
### Changed: bump pinned Coana CLI to 15.12.11
612

713
- Bumped the pinned reachability engine (the Coana CLI) from `15.12.10` to

‎Dockerfile‎

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,14 @@ ARG PIP_EXTRA_INDEX_URL=https://pypi.org/simple
1414
ARG USE_LOCAL_INSTALL=false
1515

1616
# Install base packages first
17+
# ca-certificates must be 20261020-r0 or newer, which drops the roots the
18+
# compromised eMudhra intermediates chain to. The base image ships an older
19+
# one, and `apk add` does not upgrade installed packages, so upgrade it here.
1720
RUN apk update && apk add --no-cache \
1821
git nodejs npm yarn curl wget \
19-
ruby ruby-dev build-base strace
22+
ruby ruby-dev build-base strace && \
23+
apk upgrade --no-cache ca-certificates && \
24+
[ "$(apk version -t "$(apk list -I ca-certificates | awk '{print $1}' | sed 's/^ca-certificates-//')" 20261020-r0)" != "<" ]
2025

2126
# Install Go with version control
2227
RUN if [ "$GO_VERSION" = "system" ]; then \
@@ -84,9 +89,13 @@ RUN npm install socket -g && \
8489
# Set environment paths
8590
ENV PATH="/usr/local/go/bin:/usr/lib/go/bin:/root/.cargo/bin:${PATH}"
8691
ENV GOPATH="/go"
92+
# Node only rejects the compromised eMudhra intermediates from 22.23.4 / 24.22.1,
93+
# and Alpine's nodejs package is older. Use the system store, which ca-certificates
94+
# above already fixed. Drop this once Alpine's nodejs includes Node's fix.
95+
ENV NODE_OPTIONS="--use-openssl-ca"
8796

88-
# Install uv
89-
COPY --from=ghcr.io/astral-sh/uv:0.10.4 /uv /usr/local/bin/uv
97+
# Install uv (0.13.4+ ships the patched webpki-roots)
98+
COPY --from=ghcr.io/astral-sh/uv:0.13.4 /uv /usr/local/bin/uv
9099

91100
# Install pyenv
92101
# pyenv lets us build/install arbitrary Python versions on demand. We install

0 commit comments

Comments
 (0)