[Midnightbsd-cvs] [MidnightBSD/src] 98c487: OpenSSL security fix

Lucas Holt noreply at github.com
Thu Feb 16 14:40:58 EST 2023


  Branch: refs/heads/stable/3.0
  Home:   https://github.com/MidnightBSD/src
  Commit: 98c487cf8da580c8a0a919f0ed91613c01f02849
      https://github.com/MidnightBSD/src/commit/98c487cf8da580c8a0a919f0ed91613c01f02849
  Author: Lucas Holt <luke at foolishgames.com>
  Date:   2023-02-16 (Thu, 16 Feb 2023)

  Changed paths:
    M crypto/openssl/crypto/asn1/bio_ndef.c
    M crypto/openssl/crypto/bn/bn_blind.c
    M crypto/openssl/crypto/bn/bn_err.c
    M crypto/openssl/crypto/bn/bn_local.h
    A crypto/openssl/crypto/bn/rsa_sup_mul.c
    M crypto/openssl/crypto/err/openssl.txt
    M crypto/openssl/crypto/pem/pem_lib.c
    M crypto/openssl/crypto/rsa/rsa_ossl.c
    M crypto/openssl/crypto/x509v3/v3_genn.c
    M crypto/openssl/include/crypto/bn.h
    M crypto/openssl/include/openssl/bnerr.h
    M crypto/openssl/include/openssl/x509v3.h
    M secure/lib/libcrypto/Makefile

  Log Message:
  -----------
  OpenSSL security fix

* X.400 address type confusion in X.509 GeneralName (CVE-2023-0286)

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.

* Timing Oracle in RSA Decryption (CVE-2022-4304)

A timing based side channel exists in the OpenSSL RSA Decryption
implementation.

* Use-after-free following BIO_new_NDEF (CVE-2023-0215)

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.

* Double free after calling PEM_read_bio_ex (CVE-2022-4450)

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.

Obtained from: FreeBSD, OpenSSL




More information about the Midnightbsd-cvs mailing list