Bug 31526 - openssl new security issues CVE-2022-4203, CVE-2022-4304, CVE-2022-4450, CVE-2023-021[5-7], CVE-2023-0286, CVE-2023-0401, CVE-2023-046[4-6]
Summary: openssl new security issues CVE-2022-4203, CVE-2022-4304, CVE-2022-4450, CVE-...
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Security (show other bugs)
Version: 8
Hardware: All Linux
Priority: Normal critical
Target Milestone: ---
Assignee: QA Team
QA Contact: Sec team
URL:
Whiteboard: MGA8-64-OK
Keywords: advisory, validated_update
Depends on:
Blocks:
 
Reported: 2023-02-08 15:23 CET by David Walser
Modified: 2023-04-11 21:03 CEST (History)
7 users (show)

See Also:
Source RPM: openssl-1.1.1p-1.mga8.src.rpm
CVE:
Status comment:


Attachments

Description David Walser 2023-02-08 15:23:15 CET
OpenSSL has issued an advisory on February 7:
https://www.openssl.org/news/secadv/20230207.txt

The issues are fixed upstream in 1.1.1t and 3.0.8.

We should try yet again to see if 3.0.8 is buildable.

Mageia 8 is also affected by CVE-2022-4304, CVE-2022-4450, CVE-2023-0215, and CVE-2023-0286.
David Walser 2023-02-08 15:23:29 CET

Whiteboard: (none) => MGA8TOO
Status comment: (none) => Fixed upstream in 1.1.1t and 3.0.8

Comment 1 Marja Van Waes 2023-02-08 16:01:47 CET
Assigning to all packagers collectively, since there is no registered maintainer for this package.

Assignee: bugsquad => pkg-bugs
CC: (none) => marja11

Comment 2 David Walser 2023-02-09 17:38:30 CET
Debian has issued an advisory for this on February 7:
https://www.debian.org/security/2023/dsa-5343
Comment 3 David Walser 2023-02-09 17:43:18 CET
Ubuntu has issued an advisory for this on February 7:
https://ubuntu.com/security/notices/USN-5844-1
Comment 4 David Walser 2023-02-13 18:00:43 CET
Fedora has issued an advisory for this on February 11:
https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/thread/RGMDA2QI6RIJSJF3FDWES76ORE53ELXX/
Comment 5 David Walser 2023-02-22 15:53:45 CET
Fedora has updated to 3.0.8:
https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/thread/MGJS3DWIQT3W4V6WXNE2IHFLOKIFL22G/

Maybe we can get it to build now.
Comment 6 Nicolas Salguero 2023-03-13 10:44:23 CET
Hi,

For Cauldron, openssl-3.0.8-1.mga9 solves those issues.

Best regards,

Nico.

Status comment: Fixed upstream in 1.1.1t and 3.0.8 => (none)
Source RPM: openssl-3.0.5-4.mga9.src.rpm => openssl-1.1.1p-1.mga8.src.rpm
Version: Cauldron => 8
Whiteboard: MGA8TOO => (none)
CC: (none) => nicolas.salguero

David Walser 2023-03-13 13:08:35 CET

Status comment: (none) => Fixed upstream in 1.1.1t

Comment 7 David Walser 2023-03-24 13:11:09 CET
RedHat has issued an advisory for this on March 22:
https://access.redhat.com/errata/RHSA-2023:1405
Comment 8 David Walser 2023-03-24 13:13:54 CET
OpenSSL has issued an advisory on March 22:
https://www.openssl.org/news/secadv/20230322.txt

It fixes an additional issue in 1.1.1u and 3.0.9.

Mageia 8 is also affected.

Summary: openssl new security issues CVE-2022-4203, CVE-2022-4304, CVE-2022-4450, CVE-2023-021[5-7], CVE-2023-0286, CVE-2023-0401 => openssl new security issues CVE-2022-4203, CVE-2022-4304, CVE-2022-4450, CVE-2023-021[5-7], CVE-2023-0286, CVE-2023-0401, CVE-2023-0464
Version: 8 => Cauldron
Status comment: Fixed upstream in 1.1.1t => Fixed upstream in 1.1.1u and 3.0.9
Whiteboard: (none) => MGA8TOO

Comment 9 David Walser 2023-03-30 19:57:30 CEST
OpenSSL has issued an advisory on March 28:
https://www.openssl.org/news/secadv/20230328.txt

Two additional issues will be fixed in 1.1.1v and 3.0.10.

Mageia 8 is also affected.

Status comment: Fixed upstream in 1.1.1u and 3.0.9 => Fixed upstream in 1.1.1u and 3.0.9 plus patches from upstream
Summary: openssl new security issues CVE-2022-4203, CVE-2022-4304, CVE-2022-4450, CVE-2023-021[5-7], CVE-2023-0286, CVE-2023-0401, CVE-2023-0464 => openssl new security issues CVE-2022-4203, CVE-2022-4304, CVE-2022-4450, CVE-2023-021[5-7], CVE-2023-0286, CVE-2023-0401, CVE-2023-046[4-6]

Comment 10 Nicolas Salguero 2023-03-31 15:49:23 CEST
Hi,

For Cauldron, openssl-3.0.8-2.mga9 solves CVE-2023-046[4-6] too.

Best regards,

Nico.
David Walser 2023-03-31 16:01:45 CEST

Version: Cauldron => 8
Whiteboard: MGA8TOO => (none)

Comment 11 Nicolas Salguero 2023-04-03 11:06:40 CEST
Suggested advisory:
========================

The updated packages fix security vulnerabilities:

A read buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Note that this occurs after certificate chain signature verification and requires either a CA to have signed the malicious certificate or for the application to continue certificate verification despite failure to construct a path to a trusted issuer. The read buffer overrun might result in a crash which could lead to a denial of service attack. In theory it could also result in the disclosure of private memory contents (such as private keys, or sensitive plaintext) although we are not aware of any working exploit leading to memory contents disclosure as of the time of release of this advisory. In a TLS client, this can be triggered by connecting to a malicious server. In a TLS server, this can be triggered if the server requests client authentication and a malicious client connects. (CVE-2022-4203)

A timing based side channel exists in the OpenSSL RSA Decryption implementation which could be sufficient to recover a plaintext across a network in a Bleichenbacher style attack. To achieve a successful decryption an attacker would have to be able to send a very large number of trial messages for decryption. The vulnerability affects all RSA padding modes: PKCS#1 v1.5, RSA-OEAP and RSASVE. For example, in a TLS connection, RSA is commonly used by a client to send an encrypted pre-master secret to the server. An attacker that had observed a genuine connection between a client and a server could use this flaw to send trial messages to the server and record the time taken to process them. After a sufficiently large number of messages the attacker could recover the pre-master secret used for the original connection and thus be able to decrypt the application data sent over that connection. (CVE-2022-4304)

The function PEM_read_bio_ex() reads a PEM file from a BIO and parses and decodes the "name" (e.g. "CERTIFICATE"), any header data and the payload data. If the function succeeds then the "name_out", "header" and "data" arguments are populated with pointers to buffers containing the relevant decoded data. The caller is responsible for freeing those buffers. It is possible to construct a PEM file that results in 0 bytes of payload data. In this case PEM_read_bio_ex() will return a failure code but will populate the header argument with a pointer to a buffer that has already been freed. If the caller also frees this buffer then a double free will occur. This will most likely lead to a crash. This could be exploited by an attacker who has the ability to supply malicious PEM files for parsing to achieve a denial of service attack. The functions PEM_read_bio() and PEM_read() are simple wrappers around PEM_read_bio_ex() and therefore these functions are also directly affected. These functions are also called indirectly by a number of other OpenSSL functions including PEM_X509_INFO_read_bio_ex() and SSL_CTX_use_serverinfo_file() which are also vulnerable. Some OpenSSL internal uses of these functions are not vulnerable because the caller does not free the header argument if PEM_read_bio_ex() returns a failure code. These locations include the PEM_read_bio_TYPE() functions as well as the decoders introduced in OpenSSL 3.0. The OpenSSL asn1parse command line application is also impacted by this issue. (CVE-2022-4450)

The public API function BIO_new_NDEF is a helper function used for streaming ASN.1 data via a BIO. It is primarily used internally to OpenSSL to support the SMIME, CMS and PKCS7 streaming capabilities, but may also be called directly by end user applications. The function receives a BIO from the caller, prepends a new BIO_f_asn1 filter BIO onto the front of it to form a BIO chain, and then returns the new head of the BIO chain to the caller. Under certain conditions, for example if a CMS recipient public key is invalid, the new filter BIO is freed and the function returns a NULL result indicating a failure. However, in this case, the BIO chain is not properly cleaned up and the BIO passed by the caller still retains internal pointers to the previously freed filter BIO. If the caller then goes on to call BIO_pop() on the BIO then a use-after-free will occur. This will most likely result in a crash. This scenario occurs directly in the internal function B64_write_ASN1() which may cause BIO_new_NDEF() to be called and will subsequently call BIO_pop() on the BIO. This internal function is in turn called by the public API functions PEM_write_bio_ASN1_stream, PEM_write_bio_CMS_stream, PEM_write_bio_PKCS7_stream, SMIME_write_ASN1, SMIME_write_CMS and SMIME_write_PKCS7. Other public API functions that may be impacted by this include i2d_ASN1_bio_stream, BIO_new_CMS, BIO_new_PKCS7, i2d_CMS_bio_stream and i2d_PKCS7_bio_stream. The OpenSSL cms and smime command line applications are similarly affected. (CVE-2023-0215)

An invalid pointer dereference on read can be triggered when an application tries to load malformed PKCS7 data with the d2i_PKCS7(), d2i_PKCS7_bio() or d2i_PKCS7_fp() functions. The result of the dereference is an application crash which could lead to a denial of service attack. The TLS implementation in OpenSSL does not call this function however third party applications might call these functions on untrusted data. (CVE-2023-0216)

An invalid pointer dereference on read can be triggered when an application tries to check a malformed DSA public key by the EVP_PKEY_public_check() function. This will most likely lead to an application crash. This function can be called on public keys supplied from untrusted sources which could allow an attacker to cause a denial of service attack. The TLS implementation in OpenSSL does not call this function but applications might call the function if there are additional security requirements imposed by standards such as FIPS 140-3. (CVE-2023-0217)

There is a type confusion vulnerability relating to X.400 address processing inside an X.509 GeneralName. X.400 addresses were parsed as an ASN1_STRING but the public structure definition for GENERAL_NAME incorrectly specified the type of the x400Address field as ASN1_TYPE. This field is subsequently interpreted by the OpenSSL function GENERAL_NAME_cmp as an ASN1_TYPE rather than an ASN1_STRING. When CRL checking is enabled (i.e. the application sets the X509_V_FLAG_CRL_CHECK flag), this vulnerability may allow an attacker to pass arbitrary pointers to a memcmp call, enabling them to read memory contents or enact a denial of service. In most cases, the attack requires the attacker to provide both the certificate chain and CRL, neither of which need to have a valid signature. If the attacker only controls one of these inputs, the other input must already contain an X.400 address as a CRL distribution point, which is uncommon. As such, this vulnerability is most likely to only affect applications which have implemented their own functionality for retrieving CRLs over a network. (CVE-2023-0286)

A NULL pointer can be dereferenced when signatures are being verified on PKCS7 signed or signedAndEnveloped data. In case the hash algorithm used for the signature is known to the OpenSSL library but the implementation of the hash algorithm is not available the digest initialization will fail. There is a missing check for the return value from the initialization function which later leads to invalid usage of the digest API most likely leading to a crash. The unavailability of an algorithm can be caused by using FIPS enabled configuration of providers or more commonly by not loading the legacy provider. PKCS7 data is processed by the SMIME library calls and also by the time stamp (TS) library calls. The TLS implementation in OpenSSL does not call these functions however third party applications would be affected if they call these functions to verify signatures on untrusted data. (CVE-2023-0401)

A security vulnerability has been identified in all supported versions of OpenSSL related to the verification of X.509 certificate chains that include policy constraints. Attackers may be able to exploit this vulnerability by creating a malicious certificate chain that triggers exponential use of computational resources, leading to a denial-of-service (DoS) attack on affected systems. Policy processing is disabled by default but can be enabled by passing the `-policy' argument to the command line utilities or by calling the `X509_VERIFY_PARAM_set1_policies()' function. (CVE-2023-0464)

Applications that use a non-default option when verifying certificates may be vulnerable to an attack from a malicious CA to circumvent certain checks. Invalid certificate policies in leaf certificates are silently ignored by OpenSSL and other certificate policy checks are skipped for that certificate. A malicious CA could use this to deliberately assert invalid certificate policies in order to circumvent policy checking on the certificate altogether. Policy processing is disabled by default but can be enabled by passing the `-policy' argument to the command line utilities or by calling the `X509_VERIFY_PARAM_set1_policies()' function. (CVE-2023-0465)

The function X509_VERIFY_PARAM_add0_policy() is documented to implicitly enable the certificate policy check when doing certificate verification. However the implementation of the function does not enable the check which allows certificates with invalid or incorrect policies to pass the certificate verification. As suddenly enabling the policy check could break existing deployments it was decided to keep the existing behavior of the X509_VERIFY_PARAM_add0_policy() function. Instead the applications that require OpenSSL to perform certificate policy check need to use X509_VERIFY_PARAM_set1_policies() or explicitly enable the policy check by calling X509_VERIFY_PARAM_set_flags() with the X509_V_FLAG_POLICY_CHECK flag argument. Certificate policy checks are disabled by default in OpenSSL and are not commonly used by applications. (CVE-2023-0466)

References:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-4203
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-4304
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-4450
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0215
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0216
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0217
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0286
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0401
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0464
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0465
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0466
https://www.openssl.org/news/secadv/20230207.txt
https://www.debian.org/security/2023/dsa-5343
https://ubuntu.com/security/notices/USN-5844-1
https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/thread/RGMDA2QI6RIJSJF3FDWES76ORE53ELXX/
https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/thread/MGJS3DWIQT3W4V6WXNE2IHFLOKIFL22G/
https://access.redhat.com/errata/RHSA-2023:1405
https://www.openssl.org/news/secadv/20230322.txt
https://www.openssl.org/news/secadv/20230328.txt
========================

Updated packages in core/updates_testing:
========================
lib(64)openssl1.1-1.1.1t-1.mga8
lib(64)openssl-devel-1.1.1t-1.mga8
lib(64)openssl-static-devel-1.1.1t-1.mga8
openssl-1.1.1t-1.mga8
openssl-perl-1.1.1t-1.mga8

from SRPM:
openssl-1.1.1t-1.mga8.src.rpm

Status: NEW => ASSIGNED
Status comment: Fixed upstream in 1.1.1u and 3.0.9 plus patches from upstream => (none)
Assignee: pkg-bugs => qa-bugs

Comment 12 Brian Rockwell 2023-04-04 16:28:29 CEST
The following 2 packages are going to be installed:

- lib64openssl1.1-1.1.1t-1.mga8.x86_64
- openssl-1.1.1t-1.mga8.x86_64

---
confirming I am running version

$ openssl version
OpenSSL 1.1.1t  7 Feb 2023




Then I executed this command to see what would happen:

$ openssl s_client -connect mageia.org:443
CONNECTED(00000003)
depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority
verify return:1
depth=1 C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2
verify return:1
depth=0 CN = *.mageia.org
verify return:1
---
Certificate chain
 0 s:CN = *.mageia.org
   i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2
 1 s:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2
   i:C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGMDCCBRigAwIBAgIQUaOqUlfepsm3ibNK6Yq6wzANBgkqhkiG9w0BAQsFADBf
MQswCQYDVQQGEwJGUjEOMAwGA1UECBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4w
DAYDVQQKEwVHYW5kaTEgMB4GA1UEAxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIw
HhcNMjMwMTI1MDAwMDAwWhcNMjQwMjEwMjM1OTU5WjAXMRUwEwYDVQQDDAwqLm1h
Z2VpYS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtn720+OzJ
SEZkXGF1lfHlqsorod4Z8kQpPHghHBWz8I29tMgdQBzb+nTX6O87RELFyeN9FTgn
fpUbEx2ljfO6ENzCAkAs1dm7F7q8BsArb6+GkDOvY82sEdoxpKIVJutRxrX0xFot
e/f3N6lXVPbVN+2UiBF0QlXfACxZqmILm7yzLhYvoHYAYAJrDlqC4QJlsXjYCJmS
9cv/YFDKVduBvE9kjbgnD1IQrnRamsQbma9yibvCRwhP/euljg7s63YAca/vFG8z
JUo0i4S/pgBBECI9wY+ON8UIqk1aZHhz+wSX8pd3ij5BMRvm/6G+qYPmxDHSgXiO
1knSWf4CtLYxAgMBAAGjggMuMIIDKjAfBgNVHSMEGDAWgBSzkKfYya9OzWE8n3yt
XX9B/Wkw6jAdBgNVHQ4EFgQUWfGOHl+v1LcAn38JpvozqNZUNBowDgYDVR0PAQH/
BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
BwMCMEsGA1UdIAREMEIwNgYLKwYBBAGyMQECAhowJzAlBggrBgEFBQcCARYZaHR0
cHM6Ly9jcHMudXNlcnRydXN0LmNvbTAIBgZngQwBAgEwQQYDVR0fBDowODA2oDSg
MoYwaHR0cDovL2NybC51c2VydHJ1c3QuY29tL0dhbmRpU3RhbmRhcmRTU0xDQTIu
Y3JsMHMGCCsGAQUFBwEBBGcwZTA8BggrBgEFBQcwAoYwaHR0cDovL2NydC51c2Vy
dHJ1c3QuY29tL0dhbmRpU3RhbmRhcmRTU0xDQTIuY3J0MCUGCCsGAQUFBzABhhlo
dHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMCMGA1UdEQQcMBqCDCoubWFnZWlhLm9y
Z4IKbWFnZWlhLm9yZzCCAX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHcAdv+IPwq2
+5VRwmHM9Ye6NLSkzbsp3GhCCp/mZ0xaOnQAAAGF6ZKT7gAABAMASDBGAiEAne2q
kKQ+MGdGAEHvFHoLtlcKhOlCH5A8IE+8chgVW0cCIQCEOsTfpTrMQ6Pk0dTpmGoC
CjlDogkzobMs9rvrBEMAvAB2ANq2v2s/tbYin5vCu1xr6HCRcWy7UYSFNL2kPTBI
1/urAAABhemSk80AAAQDAEcwRQIhANMAFOwtyPLCqMKeUbysSCd2E1LRn3DPCFSF
KffqndFjAiAzCj30SDqZC0uD5D7r95oRydfK04lRpdHJ0kNAcl/8uwB2AO7N0GTV
2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABhemSk5wAAAQDAEcwRQIgQTli
9cjpY4gURjiNH53pKZ3E+rjTwNe7wnZG9OuRM0sCIQDgBzprhJIhhaQACJSgDy03
H8cc6MQ3SHfqK/sfsNUIwjANBgkqhkiG9w0BAQsFAAOCAQEAY910gcyHcQph8aGw
HkQC1auYdGaAkmOoIx3jeusTcOCyNqtSAYtMoXstu3bNb8U+3F9V3bfQrMwpkpdE
tnQYWEz57kuk+0Zy2r0e0FqEA9G6PdZsLdXKAwx3oOZtodUulzKQUhMLj785DFB8
o+C2tkuEAEu8OJjy0qRidw3N0Y0oI9/o7GZ8hW/lv8k/EOIXqKHsCjdcyVS7EfkM
amzvIegmz2TRRYpFuVW3gSFSq4MT3O0XNbtVSgmierlqidvB7Qv65w0ZNJ5AOApZ
2L6KqFAGMEkNR+ClmKBnsL2Du8GloJD/5rfU/o0cXyG3aD/a293T8kHV6WPfAhpg
X62gMQ==
-----END CERTIFICATE-----
subject=CN = *.mageia.org


so far working as expected.

CC: (none) => brtians1

Comment 13 Brian Rockwell 2023-04-07 17:36:28 CEST
The following 3 packages are going to be installed:

- lib64openssl-devel-1.1.1t-1.mga8.x86_64
- lib64openssl1.1-1.1.1t-1.mga8.x86_64
- openssl-1.1.1t-1.mga8.x86_64

$ openssl version
OpenSSL 1.1.1t  7 Feb 2023


$ openssl genrsa -out b1.key 4096
Generating RSA private key, 4096 bit long modulus (2 primes)


seemed to gen fine

$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:4096 -keyout b1.key -out b1.crt

worked fine

approving

Whiteboard: (none) => MGA8-64-OK

PC LX 2023-04-07 21:40:16 CEST

CC: (none) => mageia

Comment 14 Thomas Andrews 2023-04-08 14:34:09 CEST
Validating. Advisory in comment 11.

Keywords: (none) => validated_update
CC: (none) => andrewsfarm, sysadmin-bugs

Dave Hodgins 2023-04-11 00:36:07 CEST

Keywords: (none) => advisory
CC: (none) => davidwhodgins

Comment 15 Mageia Robot 2023-04-11 21:03:38 CEST
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGASA-2023-0130.html

Status: ASSIGNED => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.