未验证 提交 566ce903 编写于 作者: O openharmony_ci 提交者: Gitee

!124 Fixes CVE-2023-2975

Merge pull request !124 from code4lala/Fixes_CVE-2023-2975
...@@ -28,6 +28,26 @@ breaking changes, and mappings for the large list of deprecated functions. ...@@ -28,6 +28,26 @@ breaking changes, and mappings for the large list of deprecated functions.
[Migration guide]: https://github.com/openssl/openssl/tree/master/doc/man7/migration_guide.pod [Migration guide]: https://github.com/openssl/openssl/tree/master/doc/man7/migration_guide.pod
* Do not ignore empty associated data entries with AES-SIV.
The AES-SIV algorithm allows for authentication of multiple associated
data entries along with the encryption. To authenticate empty data the
application has to call `EVP_EncryptUpdate()` (or `EVP_CipherUpdate()`)
with NULL pointer as the output buffer and 0 as the input buffer length.
The AES-SIV implementation in OpenSSL just returns success for such call
instead of performing the associated data authentication operation.
The empty data thus will not be authenticated. ([CVE-2023-2975])
Thanks to Juerg Wullschleger (Google) for discovering the issue.
The fix changes the authentication tag value and the ciphertext for
applications that use empty associated data entries with AES-SIV.
To decrypt data encrypted with previous versions of OpenSSL the application
has to skip calls to `EVP_DecryptUpdate()` for empty associated data
entries.
*Tomas Mraz*
* Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic * Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic
OBJECT IDENTIFIER sub-identifiers to canonical numeric text form. OBJECT IDENTIFIER sub-identifiers to canonical numeric text form.
...@@ -19475,6 +19495,7 @@ ndif ...@@ -19475,6 +19495,7 @@ ndif
<!-- Links --> <!-- Links -->
[CVE-2023-2975]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2975
[CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650 [CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650
[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466 [CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255 [CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
......
...@@ -17,6 +17,7 @@ OpenSSL Releases ...@@ -17,6 +17,7 @@ OpenSSL Releases
OpenSSL 3.0 OpenSSL 3.0
----------- -----------
* Do not ignore empty associated data entries with AES-SIV ([CVE-2023-2975])
* Mitigate for very slow `OBJ_obj2txt()` performance with gigantic OBJECT * Mitigate for very slow `OBJ_obj2txt()` performance with gigantic OBJECT
IDENTIFIER sub-identities. ([CVE-2023-2650]) IDENTIFIER sub-identities. ([CVE-2023-2650])
* Fixed documentation of X509_VERIFY_PARAM_add0_policy() ([CVE-2023-0466]) * Fixed documentation of X509_VERIFY_PARAM_add0_policy() ([CVE-2023-0466])
...@@ -1424,6 +1425,7 @@ OpenSSL 0.9.x ...@@ -1424,6 +1425,7 @@ OpenSSL 0.9.x
<!-- Links --> <!-- Links -->
[CVE-2023-2975]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2975
[CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650 [CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650
[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466 [CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255 [CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
......
...@@ -120,14 +120,18 @@ static int siv_cipher(void *vctx, unsigned char *out, size_t *outl, ...@@ -120,14 +120,18 @@ static int siv_cipher(void *vctx, unsigned char *out, size_t *outl,
if (!ossl_prov_is_running()) if (!ossl_prov_is_running())
return 0; return 0;
if (inl == 0) { /* Ignore just empty encryption/decryption call and not AAD. */
*outl = 0; if (out != NULL) {
return 1; if (inl == 0) {
} if (outl != NULL)
*outl = 0;
return 1;
}
if (outsize < inl) { if (outsize < inl) {
ERR_raise(ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL); ERR_raise(ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL);
return 0; return 0;
}
} }
if (ctx->hw->cipher(ctx, out, in, inl) <= 0) if (ctx->hw->cipher(ctx, out, in, inl) <= 0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册