Synopsis
The remote TencentOS Server 4 host is missing one or more security updates.
Description
The version of Tencent Linux installed on the remote TencentOS Server 4 host is prior to tested version. It is, therefore, affected by multiple vulnerabilities as referenced in the TSSA-2024:0034 advisory.
    Package updates are available for TencentOS Server 4 that fix the following vulnerabilities:
    CVE-2023-0466:
    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-0465:
    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-1255:
    Issue summary: The AES-XTS cipher decryption implementation for 64 bit ARM     platform contains a bug that could cause it to read past the input buffer,     leading to a crash.
    Impact summary: Applications that use the AES-XTS algorithm on the 64 bit ARM     platform can crash in rare circumstances. The AES-XTS algorithm is usually     used for disk encryption.
    The AES-XTS cipher decryption implementation for 64 bit ARM platform will read     past the end of the ciphertext buffer if the ciphertext size is 4 mod 5 in 16     byte blocks, e.g. 144 bytes or 1024 bytes. If the memory after the ciphertext     buffer is unmapped, this will trigger a crash which results in a denial of     service.
    If an attacker can control the size and location of the ciphertext buffer     being decrypted by an application using AES-XTS on 64 bit ARM, the     application is affected. This is fairly unlikely making this issue     a Low severity one.
    CVE-2023-2650:
    Issue summary: Processing some specially crafted ASN.1 object identifiers or     data containing them may be very slow.
    Impact summary: Applications that use OBJ_obj2txt() directly, or use any of     the OpenSSL subsystems OCSP, PKCS7/SMIME, CMS, CMP/CRMF or TS with no message     size limit may experience notable to very long delays when processing those     messages, which may lead to a Denial of Service.
    An OBJECT IDENTIFIER is composed of a series of numbers - sub-identifiers -     most of which have no size limit.  OBJ_obj2txt() may be used to translate     an ASN.1 OBJECT IDENTIFIER given in DER encoding form (using the OpenSSL     type ASN1_OBJECT) to its canonical numeric text form, which are the     sub-identifiers of the OBJECT IDENTIFIER in decimal form, separated by     periods.
    When one of the sub-identifiers in the OBJECT IDENTIFIER is very large     (these are sizes that are seen as absurdly large, taking up tens or hundreds     of KiBs), the translation to a decimal number in text may take a very long     time.  The time complexity is O(n^2) with 'n' being the size of the     sub-identifiers in bytes (*).
    With OpenSSL 3.0, support to fetch cryptographic algorithms using names /     identifiers in string form was introduced.  This includes using OBJECT     IDENTIFIERs in canonical numeric text form as identifiers for fetching     algorithms.
    Such OBJECT IDENTIFIERs may be received through the ASN.1 structure     AlgorithmIdentifier, which is commonly used in multiple protocols to specify     what cryptographic algorithm should be used to sign or verify, encrypt or     decrypt, or digest passed data.
    Applications that call OBJ_obj2txt() directly with untrusted data are     affected, with any version of OpenSSL.  If the use is for the mere purpose     of display, the severity is considered low.
    In OpenSSL 3.0 and newer, this affects the subsystems OCSP, PKCS7/SMIME,     CMS, CMP/CRMF or TS.  It also impacts anything that processes X.509     certificates, including simple things like verifying its signature.
    The impact on TLS is relatively low, because all versions of OpenSSL have a     100KiB limit on the peer's certificate chain.  Additionally, this only     impacts clients, or servers that have explicitly enabled client     authentication.
    In OpenSSL 1.1.1 and 1.0.2, this only affects displaying diverse objects,     such as X.509 certificates.  This is assumed to not happen in such a way     that it would cause a Denial of Service, so these versions are considered     not affected by this issue in such a way that it would be cause for concern,     and the severity is therefore considered low.
    CVE-2023-2975:
    Issue summary: The AES-SIV cipher implementation contains a bug that causes     it to ignore empty associated data entries which are unauthenticated as     a consequence.
    Impact summary: Applications that use the AES-SIV algorithm and want to     authenticate empty data entries as associated data can be mislead by removing     adding or reordering such empty entries as these are ignored by the OpenSSL     implementation. We are currently unaware of any such applications.
    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 a call     instead of performing the associated data authentication operation.
    The empty data thus will not be authenticated.
    As this issue does not affect non-empty associated data authentication and     we expect it to be rare for an application to use empty associated data     entries this is qualified as Low severity issue.
    CVE-2023-3446:
    Issue summary: Checking excessively long DH keys or parameters may be very slow.
    Impact summary: Applications that use the functions DH_check(), DH_check_ex()     or EVP_PKEY_param_check() to check a DH key or DH parameters may experience long     delays. Where the key or parameters that are being checked have been obtained     from an untrusted source this may lead to a Denial of Service.
    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.
    An application that calls DH_check() and supplies a key or parameters obtained     from an untrusted source could be vulernable to a Denial of Service attack.
    The function DH_check() is itself called by a number of other OpenSSL functions.
    An application calling any of those other functions may similarly be affected.
    The other functions affected by this are DH_check_ex() and     EVP_PKEY_param_check().
    Also vulnerable are the OpenSSL dhparam and pkeyparam command line applications     when using the '-check' option.
    The OpenSSL SSL/TLS implementation is not affected by this issue.
    The OpenSSL 3.0 and 3.1 FIPS providers are not affected by this issue.
    CVE-2023-3817:
    Issue summary: Checking excessively long DH keys or parameters may be very slow.
    Impact summary: Applications that use the functions DH_check(), DH_check_ex()     or EVP_PKEY_param_check() to check a DH key or DH parameters may experience long     delays. Where the key or parameters that are being checked have been obtained     from an untrusted source this may lead to a Denial of Service.
    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.
    An application that calls DH_check() and supplies a key or parameters obtained     from an untrusted source could be vulnerable to a Denial of Service attack.
    The function DH_check() is itself called by a number of other OpenSSL functions.
    An application calling any of those other functions may similarly be affected.
    The other functions affected by this are DH_check_ex() and     EVP_PKEY_param_check().
    Also vulnerable are the OpenSSL dhparam and pkeyparam command line applications     when using the -check option.
    The OpenSSL SSL/TLS implementation is not affected by this issue.
    The OpenSSL 3.0 and 3.1 FIPS providers are not affected by this issue.
    CVE-2023-5678:
    Issue summary: Generating excessively long X9.42 DH keys or checking     excessively long X9.42 DH keys or parameters may be very slow.
    Impact summary: Applications that use the functions DH_generate_key() to     generate an X9.42 DH key may experience long delays.  Likewise, applications     that use DH_check_pub_key(), DH_check_pub_key_ex() or EVP_PKEY_public_check()     to check an X9.42 DH key or X9.42 DH parameters may experience long delays.
    Where the key or parameters that are being checked have been obtained from     an untrusted source this may lead to a Denial of Service.
    While DH_check() performs all the necessary checks (as of CVE-2023-3817),     DH_check_pub_key() doesn't make any of these checks, and is therefore     vulnerable for excessively large P and Q parameters.
    Likewise, while DH_generate_key() performs a check for an excessively large     P, it doesn't check for an excessively large Q.
    An application that calls DH_generate_key() or DH_check_pub_key() and     supplies a key or parameters obtained from an untrusted source could be     vulnerable to a Denial of Service attack.
    DH_generate_key() and DH_check_pub_key() are also called by a number of     other OpenSSL functions.  An application calling any of those other     functions may similarly be affected.  The other functions affected by this     are DH_check_pub_key_ex(), EVP_PKEY_public_check(), and EVP_PKEY_generate().
    Also vulnerable are the OpenSSL pkey command line application when using the
    -pubcheck option, as well as the OpenSSL genpkey command line application.
    The OpenSSL SSL/TLS implementation is not affected by this issue.
    The OpenSSL 3.0 and 3.1 FIPS providers are not affected by this issue.
    CVE-2023-5363:
    Issue summary: A bug has been identified in the processing of key and     initialisation vector (IV) lengths.  This can lead to potential truncation     or overruns during the initialisation of some symmetric ciphers.
    Impact summary: A truncation in the IV can result in non-uniqueness,     which could result in loss of confidentiality for some cipher modes.
    When calling EVP_EncryptInit_ex2(), EVP_DecryptInit_ex2() or     EVP_CipherInit_ex2() the provided OSSL_PARAM array is processed after     the key and IV have been established.  Any alterations to the key length,     via the keylen parameter or the IV length, via the ivlen parameter,     within the OSSL_PARAM array will not take effect as intended, potentially     causing truncation or overreading of these values.  The following ciphers     and cipher modes are impacted: RC2, RC4, RC5, CCM, GCM and OCB.
    For the CCM, GCM and OCB cipher modes, truncation of the IV can result in     loss of confidentiality.  For example, when following NIST's SP 800-38D     section 8.2.1 guidance for constructing a deterministic IV for AES in     GCM mode, truncation of the counter portion could lead to IV reuse.
    Both truncations and overruns of the key and overruns of the IV will     produce incorrect results and could, in some cases, trigger a memory     exception.  However, these issues are not currently assessed as security     critical.
    Changing the key and/or IV lengths is not considered to be a common operation     and the vulnerable API was recently introduced. Furthermore it is likely that     application developers will have spotted this problem during testing since     decryption would fail unless both peers in the communication were similarly     vulnerable. For these reasons we expect the probability of an application being     vulnerable to this to be quite low. However if an application is vulnerable then     this issue is considered very serious. For these reasons we have assessed this     issue as Moderate severity overall.
    The OpenSSL SSL/TLS implementation is not affected by this issue.
    The OpenSSL 3.0 and 3.1 FIPS providers are not affected by this because     the issue lies outside of the FIPS provider boundary.
    OpenSSL 3.1 and 3.0 are vulnerable to this issue.
Tenable has extracted the preceding description block directly from the Tencent Linux security advisory.
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number.
Solution
Update the affected packages.
Plugin Details
File Name: tencentos_TSSA_2024_0034.nasl
Supported Sensors: Nessus
Vulnerability Information
CPE: p-cpe:/a:tencent:tencentos_server:openssl, cpe:/o:tencent:tencentos_server:4
Required KB Items: Host/local_checks_enabled, Host/cpu, Host/etc/os-release, Host/TencentOS/rpm-list
Exploit Ease: No known exploits are available
Patch Publication Date: 2/7/2024
Vulnerability Publication Date: 2/7/2024