Skip to content

Commit fb3bde1

Browse files
committed
Keep the system CA store when callers set NODE_OPTIONS
The entrypoint now prepends --use-openssl-ca to a caller-supplied NODE_OPTIONS (e.g. a heap limit) instead of letting it replace the image default, unless the caller already picked a CA store. Also trims the 2.11.2 changelog entry to what users will notice.
1 parent d381733 commit fb3bde1

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,9 @@
44

55
### Fixed: stop trusting the compromised eMudhra intermediate CAs
66

7-
- The private keys for eight eMudhra intermediate CAs leaked (disclosed
8-
2026-10-20). The Docker image now requires Alpine `ca-certificates`
9-
`20261020-r0` or newer, which removes the roots those intermediates chain to,
10-
so `curl`, `git`, Go and Java in the image reject them.
11-
- `certifi` moves from `2025.11.12` to `2026.10.19`, so Python `requests` (the
12-
CLI's own API calls) rejects them too.
13-
- The image sets `NODE_OPTIONS=--use-openssl-ca` so Node, including the
14-
reachability engine and the Socket npm CLI, uses the patched system store
15-
until Node ships its own fix.
16-
- Bumped the bundled `uv` from `0.10.4` to `0.13.4`, which ships the patched
17-
`webpki-roots`.
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`.
1810

1911
## 2.11.1
2012

‎scripts/docker-entrypoint.sh‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
# Set GOROOT from the value determined at build time
88
export GOROOT=$(cat /etc/goroot)
99

10+
# Keep Node on the system CA store (see NODE_OPTIONS in the Dockerfile) when the
11+
# caller sets their own NODE_OPTIONS, e.g. a heap limit. Leave an explicit CA
12+
# store choice alone, since Node rejects conflicting CA flags.
13+
case " ${NODE_OPTIONS:-} " in
14+
*" --use-openssl-ca "*|*" --use-bundled-ca "*|*" --use-system-ca "*) ;;
15+
*) export NODE_OPTIONS="--use-openssl-ca${NODE_OPTIONS:+ $NODE_OPTIONS}" ;;
16+
esac
17+
1018
# Check if we have any arguments
1119
if [ $# -eq 0 ]; then
1220
# No arguments provided, run socketcli with no args (will show help)

0 commit comments

Comments
 (0)