Repository navigation
v0.6.2
Note
0.6.3 supersedes this release. It also changes sat-cli and sat-tui so that -rpccacert is the only certificate authority they trust for the node, instead of being added to the public ones (see Security below). The node is the same in both. There are no 0.6.2 appliance images; use the 0.6.3 ones.
📄 Canonical release notes:
docs/release-notes/0.6.2.md
satd 0.6.2
satd 0.6.2 is a security release on the 0.6 line, cut from the release/0.6
branch. It has a single change: the compiled-in TLS trust store and
certificate verifier no longer accept certificates that chain through the
eMudhra (emSign) intermediate CAs. The private keys of those intermediates
were disclosed on 2026-10-20, so anyone holding them could issue a
certificate for any hostname. It is a drop-in upgrade from 0.6.0 or 0.6.1,
with no reindex and no configuration changes.
Highlights
- Certificates through the compromised emSign intermediates are refused
everywhere satd,sat-cliandsat-tuicheck a server certificate against
the public CA roots:rustls-webpki0.103.16 andwebpki-roots1.0.10
(RUSTSEC-2026-0381, RUSTSEC-2026-0382, RUSTSEC-2026-0383).
Security
satd verifies a server's certificate against the public CA roots, built into
the binary, in these cases:
- Alert webhooks (
-alertfilehooks withhttps://URLs). A network
attacker holding a certificate signed by the compromised intermediates could
read alert payloads, along with any headers configured on the hook, or drop
them silently. sat-cliandsat-tuiconnecting to a TLS JSON-RPC listener.
-rpccacertadds the given CA to the public roots and does not replace
them. A forged certificate for the RPC hostname was therefore accepted, and
the RPC credentials (cookie, password or bearer token) were exposed to
whoever presented it.satd-events-clientwith no pinned CA, connecting to a streaming
endpoint by public hostname. A pinned CA (tls_ca_pem) trusts only that CA, so
it was never affected.- The
--fast-startsnapshot download. The snapshot is checked against
its AssumeUTXO hash before it loads, so a forged server could only cause the
download to fail.
None of satd's own TLS listeners (JSON-RPC, Electrum, Esplora, streaming gRPC
and WebSocket, Stratum V1 over TLS) is affected. They present the operator's
certificate, and mTLS client certificates are checked only against the CA the
operator configures. If your listener's certificate was itself issued under
an emSign intermediate, reissue it with another CA; browsers and other clients
have already distrusted it.
Dependencies
rustls-webpki0.103.15 → 0.103.16: certificate paths through the
distrusted emSign intermediate keys are rejected (RUSTSEC-2026-0382).webpki-rootsandwebpki-root-certs1.0.7 → 1.0.10: the bundled Mozilla
root set no longer includes "emSign ECC Root CA - G3" (RUSTSEC-2026-0381,
RUSTSEC-2026-0383). The releases in between also remove "SecureSign Root
CA12" and "Atos TrustedRoot 2011", and add "Telia EC TLS Root CA v3",
"Telia RSA TLS Root CA v3", "SECOM TLS ECC Root CA 2024" and "SECOM TLS RSA
Root CA 2024", following Mozilla. The0.26.11releases still in the dependency graph are
compatibility shims that re-export 1.0.10 and carry no certificates of their
own.
Upgrade notes
- Drop-in upgrade from 0.6.0 or 0.6.1. Same storage schema, no reindex, no
configuration changes. Replace the binaries and restart, or pull the
0.6.2container image. - Upgrade
sat-cliandsat-tuitoo, on every machine that reaches a TLS
RPC listener, not just the node. - Update the operating system's trust store as well. The container image,
the Umbrel and StartOS packages and the appliance images also ship
ca-certificates, and the desktop appliance ships Firefox ESR, Sparrow,
Electrum and Liana, each with its own trust store. satd itself does not use
any of them, but other software on the same machine does. On an installed
appliance, runsudo apt update && sudo apt full-upgrade. Upgrade the
bundled wallets as their projects publish fixed releases. - The 0.6.0 appliance images are superseded. They contain satd 0.6.0 and
the trust stores as they stood when the images were built, and they do not
install updates by themselves. Use the 0.6.2 images for new installs.
About this release
satd is free software under the MIT License.
- Stability & compatibility — Tier 1 surfaces (Bitcoin Core-compatible
JSON-RPC wire shape, CLI flag names/defaults,bitcoin.confkeys, on-disk
layout, Electrum/Esplora surfaces) are governed by
STABILITY_POLICY.md. satd follows
semantic versioning; while in the
0.xpre-1.0 line, deprecations may be accelerated (see the policy). - Security & disclosure — report vulnerabilities per
SECURITY.md. Consensus-affecting bugs are treated as
P0 with same-day acknowledgement. - Verifying this release — tarballs are signed with minisign, container
images with cosign (keyless OIDC), and git tags with SSH signatures (no GPG).
The key matrix and verification steps are in
SECURITY.md. - Intentional differences from Bitcoin Core — catalogued in
CORE_DIFFERENCES.md. - Operating satd — observability, the full flag matrix, tuning, and the
downstream packaging contract live in the
Operator Manual.
What's Changed
- release 0.6.2: refuse certificates through the compromised emSign intermediates by @bkeroack in #1043
Full Changelog: v0.6.1...v0.6.2