Skip to content

fix: update webpki roots - #14

Merged
CertainLach merged 1 commit into
mainfrom
push-mywzqkqsrxmk
Oct 20, 2026
Merged

CertainLach merged 1 commit into
mainfrom
push-mywzqkqsrxmk

Conversation

@CertainLach

Copy link
Copy Markdown
Member

https://emudhra.we-have-a-problem.com

eMudhra Intermediate CA is compromised, and as deno is using webpki-roots, it embeds the CA list into the binary

This PR updates PKI roots and related cryptographic libraries which had a transitive dependency on outdated version of webpki roots

Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
Comment thread Cargo.toml
rayon = "1.11.0"
regex = "^1.7.0"
reqwest = { version = "0.12.5", default-features = false, features = ["rustls-tls", "stream", "gzip", "brotli", "socks", "json", "http2"] } # pinned because of https://github.com/seanmonstar/reqwest/pull/1955
reqwest = { version = "0.13.5", default-features = false, features = ["rustls", "stream", "gzip", "brotli", "socks", "json", "http2"] }

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unpinned, as this fix from @littledivy (seanmonstar/reqwest#2080) was merged in seanmonstar/reqwest#2185

Comment thread Cargo.lock
"dlopen2_derive",
"once_cell",
"rustls-native-certs",
"rustls-native-certs 0.7.3",

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/denoland/deno_native_certs pins the old version of rustls-native-certs

We might want to either merge deno_native_certs into this codebase, or drop it until further profiling, as it carries unnecessary security risk, and it might not even be required after 2 years

The purpose of this crate is to improve Deno's startup time on MacOS.

On macOS, certificates are loaded from the system keychain. The user, admin and system trust settings are merged together as documented by Apple. The Security framework is dynamically loaded using dlopen to avoid initial dyld overhead.

On Linux and Windows, the rustls-native-certs crate is used.

@CertainLach CertainLach Oct 20, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So basically it has the same purpose as https://github.com/denoland/lzld, to delay the system frameworks load until they are requested

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Considering dropping deno_native_certs in #15

@CertainLach
CertainLach merged commit 020e04d into main Oct 20, 2026
135 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Dodo Triage Oct 20, 2026
@CertainLach
CertainLach deleted the push-mywzqkqsrxmk branch October 20, 2026 18:45
@CertainLach

Copy link
Copy Markdown
Member Author

Upstream implementation: denoland/deno#37046

@CertainLach

Copy link
Copy Markdown
Member Author

This upstream change

Require AWS-LC 1.18.2 and migrate ML-DSA imports to its stable signature API, using to_pkcs8v1() to preserve the existing PKCS#8 export format and avoid deprecation errors in CI.

Was not included here, as it was already implemented before.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants