@@ -22,6 +22,184 @@ OpenSSL Releases
2222OpenSSL 3.1
2323-----------
2424
25+ ### Changes between 3.1.2 and 3.1.3 [19 Sep 2023]
26+
27+ * Fix POLY1305 MAC implementation corrupting XMM registers on Windows.
28+
29+ The POLY1305 MAC (message authentication code) implementation in OpenSSL
30+ does not save the contents of non-volatile XMM registers on Windows 64
31+ platform when calculating the MAC of data larger than 64 bytes. Before
32+ returning to the caller all the XMM registers are set to zero rather than
33+ restoring their previous content. The vulnerable code is used only on newer
34+ x86_64 processors supporting the AVX512-IFMA instructions.
35+
36+ The consequences of this kind of internal application state corruption can
37+ be various - from no consequences, if the calling application does not
38+ depend on the contents of non-volatile XMM registers at all, to the worst
39+ consequences, where the attacker could get complete control of the
40+ application process. However given the contents of the registers are just
41+ zeroized so the attacker cannot put arbitrary values inside, the most likely
42+ consequence, if any, would be an incorrect result of some application
43+ dependent calculations or a crash leading to a denial of service.
44+
45+ ([CVE-2023-4807])
46+
47+ *Bernd Edlinger*
48+
49+ ### Changes between 3.1.1 and 3.1.2 [1 Aug 2023]
50+
51+ * Fix excessive time spent checking DH q parameter value.
52+
53+ The function DH_check() performs various checks on DH parameters. After
54+ fixing CVE-2023-3446 it was discovered that a large q parameter value can
55+ also trigger an overly long computation during some of these checks.
56+ A correct q value, if present, cannot be larger than the modulus p
57+ parameter, thus it is unnecessary to perform these checks if q is larger
58+ than p.
59+
60+ If DH_check() is called with such q parameter value,
61+ DH_CHECK_INVALID_Q_VALUE return flag is set and the computationally
62+ intensive checks are skipped.
63+
64+ ([CVE-2023-3817])
65+
66+ *Tomáš Mráz*
67+
68+ * Fix DH_check() excessive time with over sized modulus.
69+
70+ The function DH_check() performs various checks on DH parameters. One of
71+ those checks confirms that the modulus ("p" parameter) is not too large.
72+ Trying to use a very large modulus is slow and OpenSSL will not normally use
73+ a modulus which is over 10,000 bits in length.
74+
75+ However the DH_check() function checks numerous aspects of the key or
76+ parameters that have been supplied. Some of those checks use the supplied
77+ modulus value even if it has already been found to be too large.
78+
79+ A new limit has been added to DH_check of 32,768 bits. Supplying a
80+ key/parameters with a modulus over this size will simply cause DH_check() to
81+ fail.
82+
83+ ([CVE-2023-3446])
84+
85+ *Matt Caswell*
86+
87+ * Do not ignore empty associated data entries with AES-SIV.
88+
89+ The AES-SIV algorithm allows for authentication of multiple associated
90+ data entries along with the encryption. To authenticate empty data the
91+ application has to call `EVP_EncryptUpdate()` (or `EVP_CipherUpdate()`)
92+ with NULL pointer as the output buffer and 0 as the input buffer length.
93+ The AES-SIV implementation in OpenSSL just returns success for such call
94+ instead of performing the associated data authentication operation.
95+ The empty data thus will not be authenticated. ([CVE-2023-2975])
96+
97+ Thanks to Juerg Wullschleger (Google) for discovering the issue.
98+
99+ The fix changes the authentication tag value and the ciphertext for
100+ applications that use empty associated data entries with AES-SIV.
101+ To decrypt data encrypted with previous versions of OpenSSL the application
102+ has to skip calls to `EVP_DecryptUpdate()` for empty associated data
103+ entries.
104+
105+ *Tomáš Mráz*
106+
107+ * When building with the `enable-fips` option and using the resulting
108+ FIPS provider, TLS 1.2 will, by default, mandate the use of an extended
109+ master secret (FIPS 140-3 IG G.Q) and the Hash and HMAC DRBGs will
110+ not operate with truncated digests (FIPS 140-3 IG G.R).
111+
112+ *Paul Dale*
113+
114+ ### Changes between 3.1.0 and 3.1.1 [30 May 2023]
115+
116+ * Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic
117+ OBJECT IDENTIFIER sub-identifiers to canonical numeric text form.
118+
119+ OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical
120+ numeric text form. For gigantic sub-identifiers, this would take a very
121+ long time, the time complexity being O(n^2) where n is the size of that
122+ sub-identifier. ([CVE-2023-2650])
123+
124+ To mitigitate this, `OBJ_obj2txt()` will only translate an OBJECT
125+ IDENTIFIER to canonical numeric text form if the size of that OBJECT
126+ IDENTIFIER is 586 bytes or less, and fail otherwise.
127+
128+ The basis for this restriction is [RFC 2578 (STD 58), section 3.5]. OBJECT
129+ IDENTIFIER values, which stipulates that OBJECT IDENTIFIERS may have at
130+ most 128 sub-identifiers, and that the maximum value that each sub-
131+ identifier may have is 2^32-1 (4294967295 decimal).
132+
133+ For each byte of every sub-identifier, only the 7 lower bits are part of
134+ the value, so the maximum amount of bytes that an OBJECT IDENTIFIER with
135+ these restrictions may occupy is 32 * 128 / 7, which is approximately 586
136+ bytes.
137+
138+ *Richard Levitte*
139+
140+ * Multiple algorithm implementation fixes for ARM BE platforms.
141+
142+ *Liu-ErMeng*
143+
144+ * Added a -pedantic option to fipsinstall that adjusts the various
145+ settings to ensure strict FIPS compliance rather than backwards
146+ compatibility.
147+
148+ *Paul Dale*
149+
150+ * Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms which
151+ happens if the buffer size is 4 mod 5 in 16 byte AES blocks. This can
152+ trigger a crash of an application using AES-XTS decryption if the memory
153+ just after the buffer being decrypted is not mapped.
154+ Thanks to Anton Romanov (Amazon) for discovering the issue.
155+ ([CVE-2023-1255])
156+
157+ *Nevine Ebeid*
158+
159+ * Reworked the Fix for the Timing Oracle in RSA Decryption ([CVE-2022-4304]).
160+ The previous fix for this timing side channel turned out to cause
161+ a severe 2-3x performance regression in the typical use case
162+ compared to 3.0.7. The new fix uses existing constant time
163+ code paths, and restores the previous performance level while
164+ fully eliminating all existing timing side channels.
165+ The fix was developed by Bernd Edlinger with testing support
166+ by Hubert Kario.
167+
168+ *Bernd Edlinger*
169+
170+ * Add FIPS provider configuration option to disallow the use of
171+ truncated digests with Hash and HMAC DRBGs (q.v. FIPS 140-3 IG D.R.).
172+ The option '-no_drbg_truncated_digests' can optionally be
173+ supplied to 'openssl fipsinstall'.
174+
175+ *Paul Dale*
176+
177+ * Corrected documentation of X509_VERIFY_PARAM_add0_policy() to mention
178+ that it does not enable policy checking. Thanks to David Benjamin for
179+ discovering this issue.
180+ ([CVE-2023-0466])
181+
182+ *Tomáš Mráz*
183+
184+ * Fixed an issue where invalid certificate policies in leaf certificates are
185+ silently ignored by OpenSSL and other certificate policy checks are skipped
186+ for that certificate. A malicious CA could use this to deliberately assert
187+ invalid certificate policies in order to circumvent policy checking on the
188+ certificate altogether.
189+ ([CVE-2023-0465])
190+
191+ *Matt Caswell*
192+
193+ * Limited the number of nodes created in a policy tree to mitigate
194+ against CVE-2023-0464. The default limit is set to 1000 nodes, which
195+ should be sufficient for most installations. If required, the limit
196+ can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX build
197+ time define to a desired maximum number of nodes or zero to allow
198+ unlimited growth.
199+ ([CVE-2023-0464])
200+
201+ *Paul Dale*
202+
25203### Changes between 3.0 and 3.1.0 [14 Mar 2023]
26204
27205 * Add FIPS provider configuration option to enforce the
@@ -19678,6 +19856,16 @@ ndif
1967819856
1967919857<!-- Links -->
1968019858
19859+ [CVE-2023-4807]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-4807
19860+ [CVE-2023-3817]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-3817
19861+ [CVE-2023-3446]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-3446
19862+ [CVE-2023-2975]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2975
19863+ [RFC 2578 (STD 58), section 3.5]: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5
19864+ [CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650
19865+ [CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
19866+ [CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
19867+ [CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
19868+ [CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
1968119869[CVE-2023-0401]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0401
1968219870[CVE-2023-0286]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0286
1968319871[CVE-2023-0217]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0217
0 commit comments