Skip to content

Commit 7f4eb5a

Browse files
nodejs-github-botaduh95
authored andcommitted
deps: upgrade openssl sources to openssl-3.5.7
PR-URL: #63820 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Richard Lau <richard.lau@ibm.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com>
1 parent ebb4ec7 commit 7f4eb5a

163 files changed

Lines changed: 3364 additions & 15208 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

deps/openssl/openssl/CHANGES.md

Lines changed: 316 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,303 @@ OpenSSL Releases
2828
OpenSSL 3.5
2929
-----------
3030

31+
### Changes between 3.5.6 and 3.5.7 [9 Jun 2026]
32+
33+
* Fixed heap use-after-free in `PKCS7_verify()`.
34+
35+
Severity: High
36+
37+
Issue summary: A specially crafted PKCS#7 or S/MIME signed message could
38+
trigger a use-after-free during PKCS#7 signature verification.
39+
40+
Impact summary: A use-after-free may result in process crashes, heap
41+
corruption, or, potentially, remote code execution.
42+
43+
Reported by: Thai Duong (Calif.io in collaboration with Claude
44+
and Anthropic Research).
45+
46+
([CVE-2026-45447])
47+
48+
*Igor Ustinov*
49+
50+
* Fixed CMS `AuthEnvelopedData` processing may accept forged messages.
51+
52+
Severity: Moderate
53+
54+
Issue Summary: Cryptographic Message Services (CMS) processing fails
55+
to perform sufficient input validation on the cipher and tag length fields
56+
of `AuthEnvelopedData` containers, leading to various potential compromises.
57+
58+
Impact Summary: Attackers making use of these vulnerabilities may achieve
59+
key-equivalent functionality for a given CMS recipient and/or bypass
60+
integrity validation for a given message.
61+
62+
Reported by: Asim Viladi Oglu Manizada, Alex Gaynor (Anthropic),
63+
Ying Dong, and Haiyang Huang.
64+
65+
([CVE-2026-34182])
66+
67+
*Neil Horman*
68+
69+
* Fixed unbounded memory growth in the QUIC `PATH_CHALLENGE` handler.
70+
71+
Severity: Moderate
72+
73+
Issue summary: Remote peer may exhaust heap memory of the QUIC server
74+
or client by flooding it with packets containing `PATH_CHALLENGE` frames.
75+
76+
Impact summary: A malicious remote peer can cause an unbounded memory
77+
allocation which can lead to an abnormal termination of the application
78+
acting as a QUIC client or server and a Denial of Service.
79+
80+
Reported by: Abhinav Agarwal.
81+
82+
([CVE-2026-34183])
83+
84+
*Abhinav Agarwal and Alexandr Nedvedicky*
85+
86+
* Fixed NULL pointer dereference in QUIC server initial packet handling.
87+
88+
Severity: Moderate
89+
90+
Issue summary: Receiving a QUIC initial packet with an invalid token
91+
may trigger a NULL pointer dereference in the OpenSSL QUIC server
92+
with address validation disabled.
93+
94+
Impact summary: NULL pointer dereference typically causes abnormal
95+
termination of the affected QUIC server process and a Denial of Service.
96+
97+
Reported by: Sunwoo Lee (KENTECH), Hyuk Lim (KENTECH),
98+
and Seunghyun Yoon (KENTECH).
99+
100+
([CVE-2026-42764])
101+
102+
*Sunwoo Lee (KENTECH), Hyuk Lim (KENTECH), and Seunghyun Yoon (KENTECH)*
103+
104+
* Fixed AES-OCB IV ignored on `EVP_Cipher()` path.
105+
106+
Severity: Moderate
107+
108+
Issue summary: When an application drives an AES-OCB context through
109+
the public `EVP_Cipher()` one-shot interface, the application-supplied
110+
initialisation vector (IV) is silently discarded.
111+
112+
Impact summary: Every message encrypted under the same key uses the same
113+
effective nonce regardless of the IV supplied by the caller, resulting
114+
in `(key, nonce)` reuse and loss of confidentiality. If the same code path
115+
is used to compute the authentication tag, the tag depends only
116+
on the `(key, IV)` pair and not on the plaintext or ciphertext, allowing
117+
universal forgery of arbitrary ciphertext from a single captured message.
118+
119+
Reported by: Alex Gaynor (Anthropic).
120+
121+
([CVE-2026-45445])
122+
123+
*Viktor Dukhovni*
124+
125+
* Fixed possible heap buffer overflow in ASN.1 multibyte string conversion.
126+
127+
Severity: Low
128+
129+
Issue summary: A signed integer overflow when sizing the destination
130+
buffer for Unicode output in `ASN1_mbstring_ncopy()` can lead to a heap
131+
buffer overflow.
132+
133+
Impact summary: A heap buffer overflow may lead to a crash or possibly
134+
attacker controlled code execution or other undefined behaviour.
135+
136+
Reported by: Zehua Qiao and Jinwen He.
137+
138+
([CVE-2026-7383])
139+
140+
*Viktor Dukhovni*
141+
142+
* Fixed out-of-bounds read in CMS password-based decryption.
143+
144+
Severity: Low
145+
146+
Issue summary: When CMS password-based decryption ([RFC 3211]/PWRI key
147+
unwrap) processes attacker-supplied CMS data, an attacker-chosen stream-mode
148+
KEK cipher can trigger a heap out-of-bounds read in `kek_unwrap_key()`.
149+
150+
Impact summary: A heap buffer over-read may trigger a crash, which leads
151+
to Denial of Service for an application if the input buffer ends at a memory
152+
page boundary and the following page is unmapped. There is no information
153+
disclosure, as the over-read bytes are not revealed to the attacker.
154+
155+
Reported by: Bhabani Sankar Das and Haruki Oyama (Waseda University).
156+
157+
([CVE-2026-9076])
158+
159+
*Nikola Pajkovský*
160+
161+
* Fixed heap buffer over-read in ASN.1 content parsing.
162+
163+
Severity: Low
164+
165+
Issue summary: Parsing a crafted DER-encoded ASN.1 structure with a primitive
166+
element whose content exceeds 2 gigabytes in length may cause a heap buffer
167+
over-read on 64-bit Unix and Unix-like platforms.
168+
169+
Impact summary: The heap buffer over-read may crash the application (Denial
170+
of Service) or to load into the decoded ASN.1 object contents of memory
171+
beyond the end of the input buffer. More typically, such ASN.1 elements
172+
would instead be truncated.
173+
174+
Reported by: Frank Buss.
175+
176+
([CVE-2026-34180])
177+
178+
*Viktor Dukhovni*
179+
180+
* Fixed PKCS#12 files with PBMAC1 are accepted with short HMAC keys.
181+
182+
Severity: Low
183+
184+
Issue Summary: The PKCS#12 file processing fails to perform sufficient input
185+
validation for files that use Password-Based Message Authentication Code 1
186+
(PBMAC1) integrity mechanism allowing a certificate and private key forgery.
187+
188+
Impact Summary: An attacker impersonating a user can cause a service reading
189+
PKCS#12 files to accept forged certificates and private keys with a 1 in 256
190+
probability.
191+
192+
Reported by: Pavol Žáčik (Red Hat) and Alex Gaynor (Anthropic).
193+
194+
([CVE-2026-34181])
195+
196+
*Alicja Kario (Red Hat)*
197+
198+
* Fixed possible NULL dereference in password-dased CMS decryption.
199+
200+
Severity: Low
201+
202+
Issue summary: A specially crafted password-encrypted CMS message
203+
could trigger a NULL pointer dereference during CMS decryption.
204+
205+
Impact summary: This NULL pointer dereference could lead to an application
206+
crash and a Denial of Service.
207+
208+
Reported by: Mayank Jangid, Kushal Khemka, Hari Priandana,
209+
Bhabani Sankar Das, and Qifan Zhang (Palo Alto Networks).
210+
211+
([CVE-2026-42766])
212+
213+
*Igor Ustinov*
214+
215+
* Fixed NULL pointer dereference in CRMF `EncryptedValue` decryption.
216+
217+
Severity: Low
218+
219+
Issue summary: An attacker-controlled CMP (Certificate Management Protocol)
220+
server could trigger a NULL pointer dereference in a CMP client application.
221+
222+
Impact summary: A NULL pointer dereference could cause a crash
223+
of the application and a Denial of Service.
224+
225+
Reported by: Zhanpeng Liu (Tencent Xuanwu Lab),
226+
Guannan Wang (Tencent Xuanwu Lab), and Guancheng Li (Tencent Xuanwu Lab).
227+
228+
([CVE-2026-42767])
229+
230+
*Igor Ustinov*
231+
232+
* Fixed multi-`RecipientInfo` Bleichenbacher Oracle in `CMS_decrypt()`
233+
and `PKCS7_decrypt()`.
234+
235+
Severity: Low
236+
237+
Issue summary: The `CMS_decrypt()` and `PKCS7_decrypt()` functions
238+
are vulnerable to Bleichenbacher-style attack when an attacker is able
239+
to provide CMS or S/MIME messages and observe the error code
240+
and/or decryption output.
241+
242+
Impact summary: The Bleichenbacher-style attack allows an attacker to use
243+
the victim's vulnerable application as a way to decrypt or sign messages
244+
with the victim's private RSA key.
245+
246+
Reported by: Alex Gaynor (Anthropic).
247+
248+
([CVE-2026-42768])
249+
250+
*Dmitry Belyavskiy (Red Hat) and Alicja Kario (Red Hat)*
251+
252+
* Fixed trust anchor substitution via `cert`/`issuer` typo in CMP
253+
`rootCaKeyUpdate`.
254+
255+
Severity: Low
256+
257+
Issue Summary: An error in the callback used to verify the certificate
258+
provided in a Root CA key update Certificate Management Protocol (CMP)
259+
message response rendered the certificate validation ineffectual,
260+
which could lead to escalation of credentials from the Registration
261+
Authority (RA) level to the root Certification Authority (root CA) level.
262+
263+
Impact Summary: The Registration Authority could replace the root CA
264+
certificate for the CMP clients with an arbitrary root CA certificate.
265+
266+
Reported by: Alex Gaynor (Anthropic).
267+
268+
([CVE-2026-42769])
269+
270+
*Alex Gaynor (Anthropic) and Bob Beck*
271+
272+
* Fixed FFC-DH peer validation uses attacker-supplied `q`.
273+
274+
Severity: Low
275+
276+
Issue summary: When `EVP_PKEY_derive_set_peer()` is called with a DHX (X9.42)
277+
peer key, the peer key is not properly checked for the subgroup membership.
278+
279+
Impact summary: A malicious peer which presents an X9.42 key carrying
280+
the victim's `p` and `g` parameters, a forged `q = r` (a small prime factor
281+
of the cofactor `(p − 1)/q_local`), and a public value `Y` of order `r` can
282+
recover the victim's private key after a small number of key exchange
283+
attempts.
284+
285+
Reported by: Alex Gaynor (Anthropic).
286+
287+
([CVE-2026-42770])
288+
289+
*Alex Gaynor (Anthropic), Viktor Dukhovni, and Norbert Pócs*
290+
291+
* Fixed incorrect tag processing for empty messages in AES-GCM-SIV
292+
and AES-SIV modes.
293+
294+
Severity: Low
295+
296+
Issue summary: The implementations of AES-SIV ([RFC 5297]) and AES-GCM-SIV
297+
([RFC 8452]) mishandle the authentication of AAD (Additional Authenticated
298+
Data) with an empty ciphertext, allowing forgery of such messages.
299+
300+
Impact summary: An attacker can forge empty messages with arbitrary AAD
301+
to the victim's application using these ciphers.
302+
303+
Reported by: Alex Gaynor (Anthropic).
304+
305+
([CVE-2026-45446])
306+
307+
*Dmitry Belyavskiy (Red Hat)*
308+
309+
* Fixed TLS 1.3 server not sending `NewSessionTicket` message
310+
after ciphersuite mismatch.
311+
<!-- https://github.com/openssl/openssl/pull/30626 -->
312+
313+
*Daniel Kubec*
314+
315+
* Implemented validation of the minimal length of PSK identity
316+
being of at least one byte long, as required per [RFC 8446].
317+
<!-- https://github.com/openssl/openssl/pull/31058 -->
318+
319+
*Matt Caswell*
320+
321+
* Fixed usage of stale application buffer pointer by kTLS implementation
322+
after incomplete writes when `SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER` is set,
323+
that led to invalid memory reads and sending of incorrect data.
324+
<!-- https://github.com/openssl/openssl/pull/31146 -->
325+
326+
*Ilya Maximets*
327+
31328
### Changes between 3.5.5 and 3.5.6 [7 Apr 2026]
32329

33330
* Fixed incorrect failure handling in RSA KEM RSASVE encapsulation.
@@ -21961,6 +22258,8 @@ ndif
2196122258
[CVE-2025-69420]: https://openssl-library.org/news/vulnerabilities/#CVE-2025-69420
2196222259
[CVE-2025-69421]: https://openssl-library.org/news/vulnerabilities/#CVE-2025-69421
2196322260
[CVE-2026-2673]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-2673
22261+
[CVE-2026-7383]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-7383
22262+
[CVE-2026-9076]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-9076
2196422263
[CVE-2026-22795]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-22795
2196522264
[CVE-2026-22796]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-22796
2196622265
[CVE-2026-28387]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-28387
@@ -21969,5 +22268,22 @@ ndif
2196922268
[CVE-2026-28390]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-28390
2197022269
[CVE-2026-31789]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-31789
2197122270
[CVE-2026-31790]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-31790
22271+
[CVE-2026-34180]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-34180
22272+
[CVE-2026-34181]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-34181
22273+
[CVE-2026-34182]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-34182
22274+
[CVE-2026-34183]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-34183
22275+
[CVE-2026-42764]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-42764
22276+
[CVE-2026-42766]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-42766
22277+
[CVE-2026-42767]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-42767
22278+
[CVE-2026-42768]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-42768
22279+
[CVE-2026-42769]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-42769
22280+
[CVE-2026-42770]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-42770
22281+
[CVE-2026-45445]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-45445
22282+
[CVE-2026-45446]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-45446
22283+
[CVE-2026-45447]: https://openssl-library.org/news/vulnerabilities/#CVE-2026-45447
2197222284
[ESV]: https://csrc.nist.gov/Projects/cryptographic-module-validation-program/entropy-validations
2197322285
[RFC 2578 (STD 58), section 3.5]: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5
22286+
[RFC 3211]: https://datatracker.ietf.org/doc/html/rfc3211
22287+
[RFC 5297]: https://datatracker.ietf.org/doc/html/rfc5297
22288+
[RFC 8446]: https://datatracker.ietf.org/doc/html/rfc8446
22289+
[RFC 8452]: https://datatracker.ietf.org/doc/html/rfc8452

deps/openssl/openssl/Configurations/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ The build-file template is processed with the perl module
502502
Text::Template, using `{-` and `-}` as delimiters that enclose the
503503
perl code fragments that generate configuration-dependent content.
504504
Those perl fragments have access to all the hash variables from
505-
configdata.pem.
505+
configdata.pm.
506506

507507
The build-file template is expected to define at least the following
508508
perl functions in a perl code fragment enclosed with `{-` and `-}`.

deps/openssl/openssl/Configure

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /usr/bin/env perl
22
# -*- mode: perl; -*-
3-
# Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved.
3+
# Copyright 2016-2026 The OpenSSL Project Authors. All Rights Reserved.
44
#
55
# Licensed under the Apache License 2.0 (the "License"). You may not use
66
# this file except in compliance with the License. You can obtain a copy
@@ -221,16 +221,9 @@ our $BSDthreads="-pthread -D_THREAD_SAFE -D_REENTRANT";
221221
#
222222
# API compatibility name to version number mapping.
223223
#
224-
my $apitable = {
225-
# This table expresses when API additions or changes can occur.
226-
# The numbering used changes from 3.0 and on because we updated
227-
# (solidified) our version numbering scheme at that point.
228-
229-
# From 3.0 and on, we internalise the given version number in decimal
230-
# as MAJOR * 10000 + MINOR * 100 + 0
231-
"3.0.0" => 30000,
232-
"3.0" => 30000,
233224

225+
# This table expresses when API additions or changes can occur
226+
my $apitable = {
234227
# Note that before 3.0, we didn't have the same version number scheme.
235228
# Still, the numbering we use here covers what we need.
236229
"1.1.1" => 10101,
@@ -241,6 +234,18 @@ my $apitable = {
241234
"0.9.8" => 908,
242235
};
243236

237+
# From 3.0 and on, we internalise the given version number in decimal
238+
# as MAJOR * 10000 + MINOR * 100 + 0
239+
my @post30_versions = ([3, 0], [3, 1], [3, 2], [3, 3], [3, 4], [3, 5],
240+
);
241+
242+
# The numbering used changes from 3.0 and on because we updated
243+
# (solidified) our version numbering scheme at that point.
244+
foreach (@post30_versions) {
245+
my ($x, $y) = @{$_};
246+
$apitable->{"$x.$y.0"} = $apitable->{"$x.$y"} = $x * 10000 + $y * 100;
247+
}
248+
244249
# For OpenSSL::config::get_platform
245250
my %guess_opts = ();
246251

0 commit comments

Comments
 (0)