Skip to content

OpenSSL 3.1.2

Choose a tag to compare

@philyuchkoff philyuchkoff released this 02 Aug 06:52
· 77 commits to master since this release
6372c28

OpenSSL 3.1.2 is now available, including bug and security fixes

Changes between 3.1.1 and 3.1.2 [1 Aug 2023]

  • Fix excessive time spent checking DH q parameter value.

    The function DH_check() performs various checks on DH parameters. After
    fixing CVE-2023-3446 it was discovered that a large q parameter value can
    also trigger an overly long computation during some of these checks.
    A correct q value, if present, cannot be larger than the modulus p
    parameter, thus it is unnecessary to perform these checks if q is larger
    than p.

    If DH_check() is called with such q parameter value,
    DH_CHECK_INVALID_Q_VALUE return flag is set and the computationally
    intensive checks are skipped.

    ([CVE-2023-3817])

    Tomáš Mráz

  • Fix DH_check() excessive time with over sized modulus.

    The function DH_check() performs various checks on DH parameters. One of
    those checks confirms that the modulus ("p" parameter) is not too large.
    Trying to use a very large modulus is slow and OpenSSL will not normally use
    a modulus which is over 10,000 bits in length.

    However the DH_check() function checks numerous aspects of the key or
    parameters that have been supplied. Some of those checks use the supplied
    modulus value even if it has already been found to be too large.

    A new limit has been added to DH_check of 32,768 bits. Supplying a
    key/parameters with a modulus over this size will simply cause DH_check() to
    fail.

    ([CVE-2023-3446])

    Matt Caswell

  • 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.

    Tomáš Mráz

  • When building with the enable-fips option and using the resulting
    FIPS provider, TLS 1.2 will, by default, mandate the use of an extended
    master secret (FIPS 140-3 IG G.Q) and the Hash and HMAC DRBGs will
    not operate with truncated digests (FIPS 140-3 IG G.R).

    Paul Dale