Skip to content

Commit 8d4c8f8

Browse files
committedJun 19, 2023
deps: upgrade openssl sources to OpenSSL_1_1_1u
This updates all sources in deps/openssl/openssl by: $ git clone https://github.com/quictls/openssl $ cd openssl $ git checkout OpenSSL_1_1_1u+quic $ cd ../node/deps/openssl $ rm -rf openssl $ cp -R ../openssl openssl $ rm -rf openssl/.git* openssl/.travis* $ git add --all openssl $ git commit openssl PR-URL: #48369 Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
1 parent e42ff4b commit 8d4c8f8

Some content is hidden

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

48 files changed

+1011
-810
lines changed
 

‎deps/openssl/openssl/CHANGES

+58
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,64 @@
77
https://github.com/openssl/openssl/commits/ and pick the appropriate
88
release branch.
99

10+
Changes between 1.1.1t and 1.1.1u [30 May 2023]
11+
12+
*) Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic
13+
OBJECT IDENTIFIER sub-identifiers to canonical numeric text form.
14+
15+
OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical
16+
numeric text form. For gigantic sub-identifiers, this would take a very
17+
long time, the time complexity being O(n^2) where n is the size of that
18+
sub-identifier. (CVE-2023-2650)
19+
20+
To mitigitate this, `OBJ_obj2txt()` will only translate an OBJECT
21+
IDENTIFIER to canonical numeric text form if the size of that OBJECT
22+
IDENTIFIER is 586 bytes or less, and fail otherwise.
23+
24+
The basis for this restriction is RFC 2578 (STD 58), section 3.5. OBJECT
25+
IDENTIFIER values, which stipulates that OBJECT IDENTIFIERS may have at
26+
most 128 sub-identifiers, and that the maximum value that each sub-
27+
identifier may have is 2^32-1 (4294967295 decimal).
28+
29+
For each byte of every sub-identifier, only the 7 lower bits are part of
30+
the value, so the maximum amount of bytes that an OBJECT IDENTIFIER with
31+
these restrictions may occupy is 32 * 128 / 7, which is approximately 586
32+
bytes.
33+
34+
Ref: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5
35+
36+
[Richard Levitte]
37+
38+
*) Reworked the Fix for the Timing Oracle in RSA Decryption (CVE-2022-4304).
39+
The previous fix for this timing side channel turned out to cause
40+
a severe 2-3x performance regression in the typical use case
41+
compared to 1.1.1s. The new fix uses existing constant time
42+
code paths, and restores the previous performance level while
43+
fully eliminating all existing timing side channels.
44+
The fix was developed by Bernd Edlinger with testing support
45+
by Hubert Kario.
46+
[Bernd Edlinger]
47+
48+
*) Corrected documentation of X509_VERIFY_PARAM_add0_policy() to mention
49+
that it does not enable policy checking. Thanks to
50+
David Benjamin for discovering this issue. (CVE-2023-0466)
51+
[Tomas Mraz]
52+
53+
*) Fixed an issue where invalid certificate policies in leaf certificates are
54+
silently ignored by OpenSSL and other certificate policy checks are skipped
55+
for that certificate. A malicious CA could use this to deliberately assert
56+
invalid certificate policies in order to circumvent policy checking on the
57+
certificate altogether. (CVE-2023-0465)
58+
[Matt Caswell]
59+
60+
*) Limited the number of nodes created in a policy tree to mitigate
61+
against CVE-2023-0464. The default limit is set to 1000 nodes, which
62+
should be sufficient for most installations. If required, the limit
63+
can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX build
64+
time define to a desired maximum number of nodes or zero to allow
65+
unlimited growth. (CVE-2023-0464)
66+
[Paul Dale]
67+
1068
Changes between 1.1.1s and 1.1.1t [7 Feb 2023]
1169

1270
*) Fixed X.400 address type confusion in X.509 GeneralName.

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

+6-4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
our $sover_dirname = sprintf "%02d%02d", split(/\./, $config{shlib_version_number});
1414
our $osslver = sprintf "%02d%02d", split(/\./, $config{version});
1515

16+
our $shlibvariant = $target{shlib_variant} || "";
17+
1618
our $sourcedir = $config{sourcedir};
1719
our $builddir = $config{builddir};
1820
sub sourcefile {
@@ -47,13 +49,13 @@
4749
map { (my $x = $_) =~ s/\.a$//; $x }
4850
@{$unified_info{libraries}};
4951
our @shlibs =
50-
map { $unified_info{sharednames}->{$_} || () }
52+
map { $unified_info{sharednames}->{$_}.$shlibvariant || () }
5153
grep(!/\.a$/, @{$unified_info{libraries}});
5254
our @install_libs =
5355
map { (my $x = $_) =~ s/\.a$//; $x }
5456
@{$unified_info{install}->{libraries}};
5557
our @install_shlibs =
56-
map { $unified_info{sharednames}->{$_} || () }
58+
map { $unified_info{sharednames}->{$_}.$shlibvariant || () }
5759
grep(!/\.a$/, @{$unified_info{install}->{libraries}});
5860

5961
# This is a horrible hack, but is needed because recursive inclusion of files
@@ -695,7 +697,7 @@ reconfigure reconf :
695697
}
696698
return map { $_ =~ /\.a$/
697699
? $`.".OLB"
698-
: $unified_info{sharednames}->{$_}.".EXE" } @_;
700+
: $unified_info{sharednames}->{$_}.$shlibvariant.".EXE" } @_;
699701
}
700702

701703
# Helper function to deal with inclusion directory specs.
@@ -912,7 +914,7 @@ EOF
912914
sub libobj2shlib {
913915
my %args = @_;
914916
my $lib = $args{lib};
915-
my $shlib = $args{shlib};
917+
my $shlib = $args{shlib}.$shlibvariant;
916918
my $libd = dirname($lib);
917919
my $libn = basename($lib);
918920
my @objs = map { (my $x = $_) =~ s|\.o$|.OBJ|; $x }

0 commit comments

Comments
 (0)
Please sign in to comment.