Repository navigation
Stop trusting the compromised eMudhra CA (CVE-2026-111943); patch rustls, h2, quinn-proto - #125
Conversation
CVE-2026-111943: eight eMudhra intermediates under emSign ECC Root CA - G3 have trivially recoverable keys, so anyone can forge a certificate those clients accept. - webpki-roots 1.0.9 -> 1.0.10 and rustls-webpki 0.103.13 -> 0.103.16: the server, proxy and CLI trust webpki-roots (reqwest `rustls-tls`), not the OS store. The CLI, which connects over HTTPS to any endpoint, was the exposed one. Also in the Rust client's lockfile. - Images: Debian ca-certificates 20250419~deb12u2 drops the root. Every runtime stage now fails the build if the bundle still holds it, which also stops the release build's layer cache from reusing an older bundle (0.9.2-beta ships ~deb12u1, with the root). cargo audit also flagged, fixed by compatible updates: - rustls 0.23.43 -> 0.23.46 (RUSTSEC-2026-0285, -0346, -0348, -0349) - h2 0.4.15 -> 0.4.20 (RUSTSEC-2026-0258) - quinn-proto 0.11.16 -> 0.11.19 (RUSTSEC-2026-0338 to -0342) Left: h2 0.3.27, only in chdb-rust's build script (it downloads libchdb at compile time; fixed there), and rkyv 0.7.46, locked but not compiled.
chdb-rust's build script moved to reqwest 0.12 with rustls (its fix/emudhra-ca), which drops h2 0.3.27 (RUSTSEC-2026-0258) and OpenSSL from the build. Merge after that chdb-rust change: release images build with --locked against chdb-rust main.
PR SummaryMedium Risk Overview Lockfiles ( Runtime Docker stages ( Reviewed by Cursor Bugbot for commit 8ca0027. Configure here. |


CVE-2026-111943: eight eMudhra intermediate CA keys under emSign ECC Root CA - G3 can be recovered trivially, so anyone can forge a certificate that clients trusting that root accept.
Exposure (every release up to 0.9.2-beta):
webpki-roots(reqwest'srustls-tls), not the OS store. 1.0.9 has the root.ca-certificates 20250419~deb12u1, which has the root. The binaries don't consult the OS store for their own connections, but chDB'surl()/s3()(reachable through/api/v1/chdb) would.Changes:
webpki-roots1.0.9 -> 1.0.10 andrustls-webpki0.103.13 -> 0.103.16, in the workspace and the Rust client's lockfile.aws-lc-rs/aws-lc-sysmove withrustls-webpki.20250419~deb12u2drops it (checked). Changing that step also stops the release build's layer cache (cache-from: type=gha) from reusing the old apt layer. Checked that the guard passes on a fresh bookworm and fails on the 0.9.2-beta image's bundle.cargo auditfindings, fixed by compatible updates:rustls0.23.43 -> 0.23.46 (RUSTSEC-2026-0285, -0346, -0348, -0349)h20.4.15 -> 0.4.20 (RUSTSEC-2026-0258)quinn-proto0.11.16 -> 0.11.19 (RUSTSEC-2026-0338 to -0342)h20.3.27 and OpenSSL from the build.Merge order: hyperbyte-cloud/chdb-rust#3 first, then this. The release image builds with
--lockedagainst chdb-rust main.After this,
cargo auditreports onlyrkyv0.7.46 (RUSTSEC-2026-0235), which is in the lockfile but not compiled into anything. The CI-equivalent run (libchdb 26.9.0,-D warnings) passes.For the release notes:
cargo update.