<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="sa-render.xsl"?>
  <update from="huaweicloud.com" type="security" status="stable" version="1">
    <id>HCE2-SA-2025-0315</id>
    <title>An update for openresty-openssl111 is now available for HCE 2.0</title>
    <severity>Important</severity>
    <release>HCE 2.0</release>
    <issued date="2025-12-09 06:53:37"/>
    <updated date="2025-12-09 06:53:37"/>
    <references>
      <reference href="https://nvd.nist.gov/vuln/detail/CVE-2022-4450" id="CVE-2022-4450" title="CVE-2022-4450 Base Score: 7.5 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" type="cve"/>
      <reference href="https://nvd.nist.gov/vuln/detail/CVE-2021-23841" id="CVE-2021-23841" title="CVE-2021-23841 Base Score: 5.9 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" type="cve"/>
      <reference href="https://nvd.nist.gov/vuln/detail/CVE-2022-4304" id="CVE-2022-4304" title="CVE-2022-4304 Base Score: 5.9 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N" type="cve"/>
    </references>
    <description>Security Fix(es):

The function PEM_read_bio_ex() reads a PEM file from a BIO and parses and decodes the &quot;name&quot; (e.g. &quot;CERTIFICATE&quot;), any header data and the payload data. If the function succeeds then the &quot;name_out&quot;, &quot;header&quot; and &quot;data&quot; 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 OpenSSL public API function X509_issuer_and_serial_hash() attempts to create a unique hash value based on the issuer and serial number data contained within an X509 certificate. However it fails to correctly handle any errors that may occur while parsing the issuer field (which might occur if the issuer field is maliciously constructed). This may subsequently result in a NULL pointer deref and a crash leading to a potential denial of service attack. The function X509_issuer_and_serial_hash() is never directly called by OpenSSL itself so applications are only vulnerable if they use this function directly and they use it on certificates that may have been obtained from untrusted sources. OpenSSL versions 1.1.1i and below are affected by this issue. Users of these versions should upgrade to OpenSSL 1.1.1j. OpenSSL versions 1.0.2x and below are affected by this issue. However OpenSSL 1.0.2 is out of support and no longer receiving public updates. Premium support customers of OpenSSL 1.0.2 should upgrade to 1.0.2y. Other users should upgrade to 1.1.1j. Fixed in OpenSSL 1.1.1j (Affected 1.1.1-1.1.1i). Fixed in OpenSSL 1.0.2y (Affected 1.0.2-1.0.2x). (CVE-2021-23841)

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)
</description>
    <pkglist>
      <collection short="HCE 2.0" package="openresty-openssl111">
        <name>HCE 2.0</name>
        <package arch="x86_64" name="openresty-openssl111" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-1.1.1h-2.r1.hce2.x86_64.rpm</filename>
        </package>
        <package arch="x86_64" name="openresty-openssl111-asan" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-asan-1.1.1h-2.r1.hce2.x86_64.rpm</filename>
        </package>
        <package arch="x86_64" name="openresty-openssl111-asan-devel" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-asan-devel-1.1.1h-2.r1.hce2.x86_64.rpm</filename>
        </package>
        <package arch="x86_64" name="openresty-openssl111-debug" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-debug-1.1.1h-2.r1.hce2.x86_64.rpm</filename>
        </package>
        <package arch="x86_64" name="openresty-openssl111-debug-devel" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-debug-devel-1.1.1h-2.r1.hce2.x86_64.rpm</filename>
        </package>
        <package arch="x86_64" name="openresty-openssl111-devel" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-devel-1.1.1h-2.r1.hce2.x86_64.rpm</filename>
        </package>
        <package arch="aarch64" name="openresty-openssl111" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-1.1.1h-2.r1.hce2.aarch64.rpm</filename>
        </package>
        <package arch="aarch64" name="openresty-openssl111-asan" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-asan-1.1.1h-2.r1.hce2.aarch64.rpm</filename>
        </package>
        <package arch="aarch64" name="openresty-openssl111-asan-devel" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-asan-devel-1.1.1h-2.r1.hce2.aarch64.rpm</filename>
        </package>
        <package arch="aarch64" name="openresty-openssl111-debug" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-debug-1.1.1h-2.r1.hce2.aarch64.rpm</filename>
        </package>
        <package arch="aarch64" name="openresty-openssl111-debug-devel" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-debug-devel-1.1.1h-2.r1.hce2.aarch64.rpm</filename>
        </package>
        <package arch="aarch64" name="openresty-openssl111-devel" version="1.1.1h" release="2.r1.hce2">
          <filename>openresty-openssl111-devel-1.1.1h-2.r1.hce2.aarch64.rpm</filename>
        </package>
      </collection>
    </pkglist>
  </update>
