Skip to content

Commit 771caa9

Browse files
nodejs-github-botRafaelGSS
authored andcommitted
deps: upgrade openssl sources to quictls/openssl-3.0.9-quic1
PR-URL: nodejs/node#48402 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Marco Ippolito <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
1 parent 27e2050 commit 771caa9

File tree

281 files changed

+4949
-3717
lines changed

Some content is hidden

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

281 files changed

+4949
-3717
lines changed

deps/openssl/openssl/CHANGES.md

Lines changed: 80 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,82 @@ breaking changes, and mappings for the large list of deprecated functions.
2828

2929
[Migration guide]: https://github.com/openssl/openssl/tree/master/doc/man7/migration_guide.pod
3030

31-
### Changes between 3.0.8 and 3.0.8+quic [7 Feb 2023]
31+
### Changes between 3.0.9 and 3.0.9+quic [30 May 2023]
32+
* Add QUIC API support from BoringSSL
33+
*Todd Short*
34+
### Changes between 3.0.8 and 3.0.9 [30 May 2023]
3235

33-
* Add QUIC API support from BoringSSL.
36+
* Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic
37+
OBJECT IDENTIFIER sub-identifiers to canonical numeric text form.
3438

35-
*Todd Short*
39+
OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical
40+
numeric text form. For gigantic sub-identifiers, this would take a very
41+
long time, the time complexity being O(n^2) where n is the size of that
42+
sub-identifier. ([CVE-2023-2650])
43+
44+
To mitigitate this, `OBJ_obj2txt()` will only translate an OBJECT
45+
IDENTIFIER to canonical numeric text form if the size of that OBJECT
46+
IDENTIFIER is 586 bytes or less, and fail otherwise.
47+
48+
The basis for this restriction is RFC 2578 (STD 58), section 3.5. OBJECT
49+
IDENTIFIER values, which stipulates that OBJECT IDENTIFIERS may have at
50+
most 128 sub-identifiers, and that the maximum value that each sub-
51+
identifier may have is 2^32-1 (4294967295 decimal).
52+
53+
For each byte of every sub-identifier, only the 7 lower bits are part of
54+
the value, so the maximum amount of bytes that an OBJECT IDENTIFIER with
55+
these restrictions may occupy is 32 * 128 / 7, which is approximately 586
56+
bytes.
57+
58+
Ref: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5
59+
60+
*Richard Levitte*
61+
62+
* Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms which
63+
happens if the buffer size is 4 mod 5 in 16 byte AES blocks. This can
64+
trigger a crash of an application using AES-XTS decryption if the memory
65+
just after the buffer being decrypted is not mapped.
66+
Thanks to Anton Romanov (Amazon) for discovering the issue.
67+
([CVE-2023-1255])
68+
69+
*Nevine Ebeid*
70+
71+
* Reworked the Fix for the Timing Oracle in RSA Decryption ([CVE-2022-4304]).
72+
The previous fix for this timing side channel turned out to cause
73+
a severe 2-3x performance regression in the typical use case
74+
compared to 3.0.7. The new fix uses existing constant time
75+
code paths, and restores the previous performance level while
76+
fully eliminating all existing timing side channels.
77+
The fix was developed by Bernd Edlinger with testing support
78+
by Hubert Kario.
79+
80+
*Bernd Edlinger*
81+
82+
* Corrected documentation of X509_VERIFY_PARAM_add0_policy() to mention
83+
that it does not enable policy checking. Thanks to David Benjamin for
84+
discovering this issue.
85+
([CVE-2023-0466])
86+
87+
*Tomáš Mráz*
88+
89+
* Fixed an issue where invalid certificate policies in leaf certificates are
90+
silently ignored by OpenSSL and other certificate policy checks are skipped
91+
for that certificate. A malicious CA could use this to deliberately assert
92+
invalid certificate policies in order to circumvent policy checking on the
93+
certificate altogether.
94+
([CVE-2023-0465])
95+
96+
*Matt Caswell*
97+
98+
* Limited the number of nodes created in a policy tree to mitigate
99+
against CVE-2023-0464. The default limit is set to 1000 nodes, which
100+
should be sufficient for most installations. If required, the limit
101+
can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX build
102+
time define to a desired maximum number of nodes or zero to allow
103+
unlimited growth.
104+
([CVE-2023-0464])
105+
106+
*Paul Dale*
36107

37108
### Changes between 3.0.7 and 3.0.8 [7 Feb 2023]
38109

@@ -19584,6 +19655,11 @@ ndif
1958419655

1958519656
<!-- Links -->
1958619657

19658+
[CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650
19659+
[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
19660+
[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
19661+
[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
19662+
[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
1958719663
[CVE-2023-0401]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0401
1958819664
[CVE-2023-0286]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0286
1958919665
[CVE-2023-0217]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0217
@@ -19594,7 +19670,7 @@ ndif
1959419670
[CVE-2022-4203]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-4203
1959519671
[CVE-2022-3996]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-3996
1959619672
[CVE-2022-2274]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2274
19597-
[CVE-2022-2097]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2274
19673+
[CVE-2022-2097]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2097
1959819674
[CVE-2020-1971]: https://www.openssl.org/news/vulnerabilities.html#CVE-2020-1971
1959919675
[CVE-2020-1967]: https://www.openssl.org/news/vulnerabilities.html#CVE-2020-1967
1960019676
[CVE-2019-1563]: https://www.openssl.org/news/vulnerabilities.html#CVE-2019-1563

deps/openssl/openssl/Configurations/10-main.conf

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1934,5 +1934,9 @@ my %targets = (
19341934
cflags => add("/POINTER_SIZE=64=ARGV"),
19351935
pointer_size => "64",
19361936
},
1937-
1937+
"vms-x86_64" => {
1938+
inherit_from => [ "vms-generic" ],
1939+
bn_ops => "SIXTY_FOUR_BIT",
1940+
pointer_size => "",
1941+
}
19381942
);

deps/openssl/openssl/Configurations/50-vms-x86_64.conf

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
## -*- mode: perl; -*-
22

3-
# OpenVMS for x86_64 is currently out on a field test. A native C compiler
4-
# is currently not available, but there are cross-compilation tools for
5-
# OpenVMS for Itanium. This configuration file holds the necessary target(s)
6-
# to make that useful.
7-
#
8-
# The assumption is that *building* is done on Itanium, and then the source
9-
# tree and build tree are transferred to x86_64, where tests can be performed,
10-
# and installation can be done.
3+
# OpenVMS cross compilation of x86_64 binaries on Itanium. This doesn't
4+
# fit the usual cross compilation parameters that are used on Unixly machines
115

126
(
13-
'vms-x86_64' => {
7+
'vms-x86_64-cross-ia64' => {
148
inherit_from => [ 'vms-generic' ],
159
CC => 'XCC',
1610
bn_ops => 'SIXTY_FOUR_BIT',

deps/openssl/openssl/Configurations/90-team.norelease.conf

Lines changed: 0 additions & 94 deletions
This file was deleted.

deps/openssl/openssl/Configurations/descrip.mms.tmpl

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@
125125
my @lib_cflags_no_inst = ( $target{no_inst_lib_cflags} // @lib_cflags );
126126
my @lib_cflags_cont = ( $target{shared_cflag} || (),
127127
@{$config{lib_cflags}}, @{$config{shared_cflag}},
128-
$cnf_cflags, '$(CFLAGS)');
128+
@cnf_cflags, '$(CFLAGS)');
129129
our $lib_cflags = join('', @lib_cflags, @lib_cflags_cont );
130130
our $lib_cflags_no_inst = join('', @lib_cflags_no_inst, @lib_cflags_cont );
131131
our $lib_ldflags =
@@ -161,7 +161,7 @@
161161
my @dso_cflags_no_inst = ( $target{no_inst_dso_cflags} // @dso_cflags );
162162
my @dso_cflags_cont = ( $target{module_cflag} || (),
163163
@{$config{dso_cflags}}, @{$config{module_cflag}},
164-
$cnf_cflags, '$(CFLAGS)');
164+
@cnf_cflags, '$(CFLAGS)');
165165
our $dso_cflags = join('', @dso_cflags, @dso_cflags_cont );
166166
our $dso_cflags_no_inst = join('', @dso_cflags_no_inst, @dso_cflags_cont );
167167
our $dso_ldflags =
@@ -196,13 +196,9 @@
196196
my @bin_cflags = ( $target{bin_cflags} // () );
197197
my @bin_cflags_no_inst = ( $target{no_inst_bin_cflags} // @bin_cflags );
198198
my @bin_cflags_cont = ( @{$config{bin_cflags}},
199-
$cnf_cflags, '$(CFLAGS)');
199+
@cnf_cflags, '$(CFLAGS)');
200200
our $bin_cflags = join('', @bin_cflags, @bin_cflags_cont );
201201
our $bin_cflags_no_inst = join('', @bin_cflags_no_inst, @bin_cflags_cont );
202-
our $bin_cflags =
203-
join('', $target{bin_cflags} || (),
204-
@{$config{bin_cflags}},
205-
@cnf_cflags, '$(CFLAGS)');
206202
our $bin_ldflags =
207203
join('', $target{bin_lflags} || (),
208204
@{$config{bin_lflags}},

deps/openssl/openssl/Configurations/unix-Makefile.tmpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1227,7 +1227,8 @@ providers/fips.module.sources.new: configdata.pm
12271227
crypto/ec/asm/*.pl \
12281228
crypto/modes/asm/*.pl \
12291229
crypto/sha/asm/*.pl \
1230-
crypto/x86_64cpuid.pl; do \
1230+
crypto/*cpuid.pl crypto/*cpuid.S \
1231+
crypto/*cap.c; do \
12311232
echo "$$x"; \
12321233
done \
12331234
) | sort | uniq > providers/fips.module.sources.new

deps/openssl/openssl/Configurations/windows-makefile.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -765,7 +765,7 @@ EOF
765765
my $generator;
766766
if ($gen0 =~ /\.pl$/) {
767767
$generator = '"$(PERL)"'.$gen_incs.' "'.$gen0.'"'.$gen_args
768-
.' "$(PERLASM_SCHEME)"'.$incs.' '.$cppflags.$defs.' $(PROCESSSOR)';
768+
.' "$(PERLASM_SCHEME)"'.$incs.' '.$cppflags.$defs.' $(PROCESSOR)';
769769
} elsif ($gen0 =~ /\.S$/) {
770770
$generator = undef;
771771
} else {

deps/openssl/openssl/Configure

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1426,7 +1426,7 @@ if ($target =~ /^mingw/ && `$config{CC} --target-help 2>&1` =~ m/-mno-cygwin/m)
14261426
}
14271427

14281428
if ($target =~ /linux.*-mips/ && !$disabled{asm}
1429-
&& !grep { $_ !~ /-m(ips|arch=)/ } (@{$config{CFLAGS}})) {
1429+
&& !grep { $_ =~ /-m(ips|arch=)/ } (@{$config{CFLAGS}})) {
14301430
# minimally required architecture flags for assembly modules
14311431
my $value;
14321432
$value = '-mips2' if ($target =~ /mips32/);

deps/openssl/openssl/NEWS.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,17 @@ OpenSSL Releases
1818
OpenSSL 3.0
1919
-----------
2020

21+
### Major changes between OpenSSL 3.0.8 and OpenSSL 3.0.9 [30 May 2023]
22+
23+
* Mitigate for very slow `OBJ_obj2txt()` performance with gigantic OBJECT
24+
IDENTIFIER sub-identities. ([CVE-2023-2650])
25+
* Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms
26+
([CVE-2023-1255])
27+
* Fixed documentation of X509_VERIFY_PARAM_add0_policy() ([CVE-2023-0466])
28+
* Fixed handling of invalid certificate policies in leaf certificates
29+
([CVE-2023-0465])
30+
* Limited the number of nodes created in a policy tree ([CVE-2023-0464])
31+
2132
### Major changes between OpenSSL 3.0.7 and OpenSSL 3.0.8 [7 Feb 2023]
2233

2334
* Fixed NULL dereference during PKCS7 data verification ([CVE-2023-0401])
@@ -1430,6 +1441,12 @@ OpenSSL 0.9.x
14301441
* Support for various new platforms
14311442

14321443
<!-- Links -->
1444+
1445+
[CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650
1446+
[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
1447+
[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
1448+
[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
1449+
[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
14331450
[CVE-2023-0401]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0401
14341451
[CVE-2023-0286]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0286
14351452
[CVE-2023-0217]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0217
@@ -1440,7 +1457,7 @@ OpenSSL 0.9.x
14401457
[CVE-2022-4203]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-4203
14411458
[CVE-2022-3996]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-3996
14421459
[CVE-2022-2274]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2274
1443-
[CVE-2022-2097]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2274
1460+
[CVE-2022-2097]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2097
14441461
[CVE-2020-1971]: https://www.openssl.org/news/vulnerabilities.html#CVE-2020-1971
14451462
[CVE-2020-1967]: https://www.openssl.org/news/vulnerabilities.html#CVE-2020-1967
14461463
[CVE-2019-1563]: https://www.openssl.org/news/vulnerabilities.html#CVE-2019-1563

deps/openssl/openssl/NOTES-NONSTOP.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,20 @@ instead of `nsx` in the set above.
4444
You cannot build for TNS/E for FIPS, so you must specify the `no-fips`
4545
option to `./Configure`.
4646

47+
Linking and Loading Considerations
48+
----------------------------------
49+
50+
Because of how the NonStop Common Runtime Environment (CRE) works, there are
51+
restrictions on how programs can link and load with OpenSSL libraries.
52+
On current NonStop platforms, programs cannot both statically link OpenSSL
53+
libraries and dynamically load OpenSSL shared libraries concurrently. If this
54+
is done, there is a high probability of encountering a SIGSEGV condition
55+
relating to `atexit()` processing when a shared library is unloaded and when
56+
the program terminates. This limitation applies to all OpenSSL shared library
57+
components.
58+
59+
A resolution to this situation is under investigation.
60+
4761
About Prefix and OpenSSLDir
4862
---------------------------
4963

deps/openssl/openssl/NOTES-VMS.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,23 @@ When done, we recommend that you turn that flag back off:
8383

8484
$ set image /flag=nocall_debug [.test]evp_test.exe
8585

86+
About assembler acceleration
87+
----------------------------
88+
89+
OpenSSL has assembler acceleration for a number of BIGNUM and crypto
90+
routines. The VMS config targets tries to look for a selection of
91+
assemblers and will use what they find. If none of the assemblers are
92+
found, OpenSSL will be built as if `no-asm` was configured.
93+
94+
### For Itanium / IA64 / I64
95+
96+
- There is only one assembler, a port of Intel's `ias`, found in the
97+
HP Open Source Tools CD, available through [DECUSlib](http://www.decuslib.com).
98+
It's assumed to be set up as per the instructions, where `disk` and
99+
`dir` are expected to be adapted to local conditions:
100+
101+
$ ias :== $disk:[dir]iasi64.exe
102+
86103
Checking the distribution
87104
-------------------------
88105

deps/openssl/openssl/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ What This Is
44
This is a fork of [OpenSSL](https://www.openssl.org) to enable QUIC. In addition
55
to the website, the official source distribution is at
66
<https://github.com/openssl/openssl>. The OpenSSL `README` can be found at
7-
[README-OpenSSL.md](https://github.com/quictls/openssl/blob/openssl-3.0.8%2Bquic/README-OpenSSL.md)
7+
[README-OpenSSL.md](https://github.com/quictls/openssl/blob/openssl-3.0.9%2Bquic/README-OpenSSL.md)
88

99
This fork adds APIs that can be used by QUIC implementations for connection
1010
handshakes. Quoting the IETF Working group

deps/openssl/openssl/VERSION.dat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
MAJOR=3
22
MINOR=0
3-
PATCH=8
3+
PATCH=9
44
PRE_RELEASE_TAG=
55
BUILD_METADATA=quic
6-
RELEASE_DATE="7 Feb 2023"
6+
RELEASE_DATE="30 May 2023"
77
SHLIB_VERSION=81.3

0 commit comments

Comments
 (0)