Repository navigation
Conversation
Rust SDK: reqwest 0.12 with rustls-tls uses the roots compiled in from webpki-roots. The lock had webpki-roots 1.0.8 and rustls-webpki 0.103.15, and that combination accepts a certificate issued by one of the compromised eMudhra/emSign intermediate CAs. Move rustls-webpki to 0.103.16 (RUSTSEC-2026-0383, CVE-2026-111943), which rejects chains with those keys, and webpki-roots to 1.0.10. Python SDK: httpx uses certifi by default. The lock had certifi 2025.8.3, which still holds emSign ECC Root CA - G3. Move it to 2026.10.19 and add certifi>=2026.10.19 to the dependencies, so installs outside the lock also get a fixed bundle. pdm 2.29 rewrote lock_version from 4.5.0 to 4.5.1. Both SDKs are libraries: applications that depend on them resolve their own versions, so they need to update their locks too. Signed-off-by: Leechael Yim <yanleech@gmail.com>
Leechael
marked this pull request as ready for review
October 22, 2026 02:04
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Rust and Python SDK locks still resolve versions that trust certificates issued by the compromised eMudhra/emSign intermediate CAs.
Changes
sdk/rust/Cargo.locksdk/rust/Cargo.locksdk/python/pdm.locksdk/python/pyproject.tomlcertifi>=2026.10.19cargo update -p rustls-webpki --precise 0.103.16andcargo update -p webpki-roots@1.0.8 --precise 1.0.10. Nothing else in the lock moves. After the change,Cargo.lockhas one rustls-webpki entry, andcargo tree -ishows rustls-webpki v0.103.16 and webpki-roots v1.0.10 under reqwest v0.12.28 / hyper-rustls. The SDK uses reqwestrustls-tls, so it trusts the roots compiled in from webpki-roots, plus the rustls-webpki distrust list.pdm lock --update-reuse. Only certifi changes; pdm 2.29.3 also rewrotelock_versionfrom 4.5.0 to 4.5.1 and the content hash. httpx (0.28.1) uses certifi by default. The>=entry makes installs that do not use this lock pick a fixed bundle too.Self-test against the emSign test site
Rust: a reqwest 0.12 client (
rustls-tls, the SDK's features), resolved from a copy of the SDKCargo.lock:Python:
httpx.get("https://dv-g3b-emudhra.we-have-a-problem.com/"):Tests run (against the guest-agent simulator built from this branch, the same flow as
sdk/run-tests.sh)cargo test --locked --workspace: all pass. Thetappd_client_usageanddstack_client_usageexamples run.no_std_testpasses.cargo build --locked --all-targetspasses.pdm run test: 172 passed.pdm run check(ruff, ruff format, mypy): passes.Not run here
sdk-compatworkflow.Notes
go 1.25.0/go 1.24.0directives) is a library too. Applications must build with Go 1.26.10 or 1.27.3 to get the crypto/x509 fix. This PR does not change it.