What version of OpenSSL is in Node.js 22 LTS?
Node.js v22.6.0 embeds OpenSSL 3.0.13+quic as its primary cryptographic runtime engine, providing default TLS 1.3 ciphers, modernized provider architecture, and QUIC packet parsing primitives. Legacy cryptographic algorithms are disabled by default and require explicit legacy provider invocation.
🔗 Dependency Relationship
| Package | Version | Relationship | Ingestion Scope | Package URL (PURL) |
|---|---|---|---|---|
| openssl Target | 3.0.13+quic | Direct Dependency | ↳ Statically linked core engine | pkg:generic/openssl@3.0.13+quic |
| openssl-legacy-provider | 3.0.13 | Direct Dependency | ↳ Direct core provider module | pkg:generic/openssl-legacy-provider@3.0.13 |
| libcrypto.so.3 | 3.0.x | Transitive Dependency | ↳ Dynamic host ABI boundary | pkg:generic/libcrypto.so.3@3.0.x |
Node.js 22 LTS statically embeds OpenSSL 3.0.13 with specialized QUIC API extensions directly into its core binary (`deps/openssl/openssl`). Unlike prior Node.js LTS releases that utilized OpenSSL 1.1 or monolithic provider setups, Node.js 22 operates under OpenSSL 3.0's modular Provider Architecture. Legacy cryptographic algorithms (MD4, RC4, DES, Blowfish) are isolated into a separate legacy provider (`legacy.so`), causing unhandled `ERR_OSSL_EVP_UNSUPPORTED` runtime exceptions unless `--openssl-legacy-provider` is explicitly enabled. Furthermore, when native C++ npm addons (`node-gyp`) dynamically link against host operating system libraries (`libcrypto.so.3` or legacy OpenSSL 1.1), dual-engine symbol collisions and ABI divergence can trigger fatal segmentation faults during EVP cipher context handoffs. (source: OpenSSL Foundation) ↗ (source: Node.js Project) ↗
SBOM Insights
⚡ Synthesized SBOM
Deterministic baseline metadata collected on-demand from the upstream Google deps.dev v3 package graph without repository checkout.
Supply Chain Governance
Node.js 22.6 is regulated by the following European Union and United States supply chain directives and security frameworks:
| Regulatory Body | Directive / Framework | Official Identifier | Statutory Scope & Classification | Official Directive |
|---|---|---|---|---|
| European Union / European Commission | EU Cyber Resilience Act (CRA) | Regulation (EU) 2024/2847 | Important Product with Digital Elements (Class I / General Purpose Operating & Runtime Environment) | Directive Text ↗ |
| ENISA / European Commission | NIS2 Directive | Directive (EU) 2022/2555 | Digital Infrastructure & Cloud Services (Annex I - Essential Entity) | Directive Text ↗ |
| NIST / CMVP | FIPS 140-2 / 140-3 Cryptographic Standards | FIPS PUB 140-3 | Security Requirements for Cryptographic Modules | Directive Text ↗ |
Authoritative Verified Facts & Advisories
Authoritative weakness definitions, CVE records, and predictive EPSS weaponization telemetry partitioned by target dependency and host container environment.
Target Package Advisories & Weaknesses: openssl
6 Verified RecordsDeprecation and runtime rejection (ERR_OSSL_EVP_UNSUPPORTED) of legacy weak ciphers (MD4, RC4, DES) in OpenSSL 3.0 default provider.
Native C++ node-gyp addon ABI mismatch and EVP cipher context corruption when linking against divergent host libcrypto versions.
Truncation of 64-bit cryptographic nonces and Snowflake IDs exceeding JavaScript IEEE-754 MAX_SAFE_INTEGER.
Unbounded memory growth flaw in OpenSSL session ticket caching triggered during concurrent TLS handshake renegotiation.
Denial of service via excessive computational resource consumption during validation of overly long DSA keys in OpenSSL.
Use-after-free vulnerability in OpenSSL when freeing buffers after handling incoming TLS network traffic.
Host Application Advisories: Node.js v22.6.0
Experimental permission model bypass allowing path traversal via document.location handling.
Permission model bypass permitting arbitrary filesystem read/write via prototype mutation of process.mainModule.
HTTP/2 CONTINUATION flood vulnerability allowing remote attackers to exhaust memory and crash Node.js servers.
Lock Down Your Node.js Supply Chain with Packablock
Don't guess which dependencies or runtime engines are running in your environment. Packablock creates an immutable cryptographic ledger (`packablock.yaml`) for every dependency lockfile modification.
Start Free Supply Chain Attestation →