OpenSSL Security Advisory [27th January 2026] ============================================= Improper validation of PBMAC1 parameters in PKCS#12 MAC verification (CVE-2025-11187) ===================================================================================== Severity: Moderate Issue summary: PBMAC1 parameters in PKCS#12 files are missing validation which can trigger a stack-based buffer overflow, invalid pointer or NULL pointer dereference during MAC verification. Impact summary: The stack buffer overflow or NULL pointer dereference may cause a crash leading to Denial of Service for an application that parses untrusted PKCS#12 files. The buffer overflow may also potentially enable code execution depending on platform mitigations. When verifying a PKCS#12 file that uses PBMAC1 for the MAC, the PBKDF2 salt and keylength parameters from the file are used without validation. If the value of keylength exceeds the size of the fixed stack buffer used for the derived key (64 bytes), the key derivation will overflow the buffer. The overflow length is attacker-controlled. Also, if the salt parameter is not an OCTET STRING type this can lead to invalid or NULL pointer dereference. Exploiting this issue requires a user or application to process a maliciously crafted PKCS#12 file. It is uncommon to accept untrusted PKCS#12 files in applications as they are usually used to store private keys which are trusted by definition. For this reason the issue was assessed as Moderate severity. The FIPS modules in 3.6, 3.5 and 3.4 are not affected by this issue, as PKCS#12 processing is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5 and 3.4 are vulnerable to this issue. OpenSSL 3.3, 3.0, 1.1.1 and 1.0.2 are not affected by this issue as they do not support PBMAC1 in PKCS#12. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. This issue was reported on 11th September 2025 by Stanislav Fort (Aisle Research) with a follow up report on 21st November 2025 by Stanislav Fort and Petr Šimeček (Aisle Research). It was also independently reported on 14th October 2025 by Hamza (Metadust). The fix was developed by Tomas Mraz. Stack buffer overflow in CMS AuthEnvelopedData parsing (CVE-2025-15467) ======================================================================= Severity: High Issue summary: Parsing CMS AuthEnvelopedData message with maliciously crafted AEAD parameters can trigger a stack buffer overflow. Impact summary: A stack buffer overflow may lead to a crash, causing Denial of Service, or potentially remote code execution. When parsing CMS AuthEnvelopedData structures that use AEAD ciphers such as AES-GCM, the IV (Initialization Vector) encoded in the ASN.1 parameters is copied into a fixed-size stack buffer without verifying that its length fits the destination. An attacker can supply a crafted CMS message with an oversized IV, causing a stack-based out-of-bounds write before any authentication or tag verification occurs. Applications and services that parse untrusted CMS or PKCS#7 content using AEAD ciphers (e.g., S/MIME AuthEnvelopedData with AES-GCM) are vulnerable. Because the overflow occurs prior to authentication, no valid key material is required to trigger it. While exploitability to remote code execution depends on platform and toolchain mitigations, the stack-based write primitive represents a severe risk. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the CMS implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4, 3.3 and 3.0 are vulnerable to this issue. OpenSSL 1.1.1 and 1.0.2 are not affected by this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. OpenSSL 3.0 users should upgrade to OpenSSL 3.0.19. This issue was reported on 14th December 2025 by Stanislav Fort (Aisle Research). The fix was developed by Igor Ustinov. NULL dereference in SSL_CIPHER_find() function on unknown cipher ID (CVE-2025-15468) ==================================================================================== Severity: Low Issue summary: If an application using the SSL_CIPHER_find() function in a QUIC protocol client or server receives an unknown cipher suite from the peer, a NULL dereference occurs. Impact summary: A NULL pointer dereference leads to abnormal termination of the running process causing Denial of Service. Some applications call SSL_CIPHER_find() from the client_hello_cb callback on the cipher ID received from the peer. If this is done with an SSL object implementing the QUIC protocol, NULL pointer dereference will happen if the examined cipher ID is unknown or unsupported. As it is not very common to call this function in applications using the QUIC protocol and the worst outcome is Denial of Service, the issue was assessed as Low severity. The vulnerable code was introduced in the 3.2 version with the addition of the QUIC protocol support. The FIPS modules in 3.6, 3.5, 3.4 and 3.3 are not affected by this issue, as the QUIC implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4 and 3.3 are vulnerable to this issue. OpenSSL 3.0, 1.1.1 and 1.0.2 are not affected by this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. This issue was reported on 13th December 2025 by Stanislav Fort (Aisle Research). The fix was developed by Stanislav Fort (Aisle Research). "openssl dgst" one-shot codepath silently truncates inputs >16MB (CVE-2025-15469) ================================================================================= Severity: Low Issue summary: The "openssl dgst" command-line tool silently truncates input data to 16MB when using one-shot signing algorithms and reports success instead of an error. Impact summary: A user signing or verifying files larger than 16MB with one-shot algorithms (such as Ed25519, Ed448, or ML-DSA) may believe the entire file is authenticated while trailing data beyond 16MB remains unauthenticated. When the "openssl dgst" command is used with algorithms that only support one-shot signing (Ed25519, Ed448, ML-DSA-44, ML-DSA-65, ML-DSA-87), the input is buffered with a 16MB limit. If the input exceeds this limit, the tool silently truncates to the first 16MB and continues without signaling an error, contrary to what the documentation states. This creates an integrity gap where trailing bytes can be modified without detection if both signing and verification are performed using the same affected codepath. The issue affects only the command-line tool behavior. Verifiers that process the full message using library APIs will reject the signature, so the risk primarily affects workflows that both sign and verify with the affected "openssl dgst" command. Streaming digest algorithms for "openssl dgst" and library users are unaffected. The FIPS modules in 3.5 and 3.6 are not affected by this issue, as the command-line tools are outside the OpenSSL FIPS module boundary. OpenSSL 3.5 and 3.6 are vulnerable to this issue. OpenSSL 3.4, 3.3, 3.0, 1.1.1 and 1.0.2 are not affected by this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. This issue was reported on 13th December 2025 by Stanislav Fort (Aisle Research). The fix was developed by Viktor Dukhovni. TLS 1.3 CompressedCertificate excessive memory allocation (CVE-2025-66199) ========================================================================== Severity: Low Issue summary: A TLS 1.3 connection using certificate compression can be forced to allocate a large buffer before decompression without checking against the configured certificate size limit. Impact summary: An attacker can cause per-connection memory allocations of up to approximately 22 MiB and extra CPU work, potentially leading to service degradation or resource exhaustion (Denial of Service). In affected configurations, the peer-supplied uncompressed certificate length from a CompressedCertificate message is used to grow a heap buffer prior to decompression. This length is not bounded by the max_cert_list setting, which otherwise constrains certificate message sizes. An attacker can exploit this to cause large per-connection allocations followed by handshake failure. No memory corruption or information disclosure occurs. This issue only affects builds where TLS 1.3 certificate compression is compiled in (i.e., not OPENSSL_NO_COMP_ALG) and at least one compression algorithm (brotli, zlib, or zstd) is available, and where the compression extension is negotiated. Both clients receiving a server CompressedCertificate and servers in mutual TLS scenarios receiving a client CompressedCertificate are affected. Servers that do not request client certificates are not vulnerable to client-initiated attacks. Users can mitigate this issue by setting SSL_OP_NO_RX_CERTIFICATE_COMPRESSION to disable receiving compressed certificates. The FIPS modules in 3.6, 3.5, 3.4 and 3.3 are not affected by this issue, as the TLS implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4 and 3.3 are vulnerable to this issue. OpenSSL 3.0, 1.1.1 and 1.0.2 are not affected by this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. This issue was reported on 8th November 2025 by Tomas Dulka (Aisle Research) and Stanislav Fort (Aisle Research). The fix was developed by Tomas Dulka (Aisle Research) and Stanislav Fort (Aisle Research). Heap out-of-bounds write in BIO_f_linebuffer on short writes (CVE-2025-68160) ============================================================================== Severity: Low Issue summary: Writing large, newline-free data into a BIO chain using the line-buffering filter where the next BIO performs short writes can trigger a heap-based out-of-bounds write. Impact summary: This out-of-bounds write can cause memory corruption which typically results in a crash, leading to Denial of Service for an application. The line-buffering BIO filter (BIO_f_linebuffer) is not used by default in TLS/SSL data paths. In OpenSSL command-line applications, it is typically only pushed onto stdout/stderr on VMS systems. Third-party applications that explicitly use this filter with a BIO chain that can short-write and that write large, newline-free data influenced by an attacker would be affected. However, the circumstances where this could happen are unlikely to be under attacker control, and BIO_f_linebuffer is unlikely to be handling non-curated data controlled by an attacker. For that reason the issue was assessed as Low severity. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the BIO implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0, 1.1.1 and 1.0.2 are vulnerable to this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. OpenSSL 3.0 users should upgrade to OpenSSL 3.0.19. OpenSSL 1.1.1 users should upgrade to OpenSSL 1.1.1ze (premium support customers only). OpenSSL 1.0.2 users should upgrade to OpenSSL 1.0.2zn (premium support customers only). This issue was reported on 1st December 2025 by Petr Simecek (Aisle Research) and Stanislav Fort (Aisle Research). The fix was developed by Stanislav Fort (Aisle Research) and Neil Horman. Unauthenticated/unencrypted trailing bytes with low-level OCB function calls (CVE-2025-69418) ============================================================================================= Severity: Low Issue summary: When using the low-level OCB API directly with AES-NI or other hardware-accelerated code paths, inputs whose length is not a multiple of 16 bytes can leave the final partial block unencrypted and unauthenticated. Impact summary: The trailing 1-15 bytes of a message may be exposed in cleartext on encryption and are not covered by the authentication tag, allowing an attacker to read or tamper with those bytes without detection. The low-level OCB encrypt and decrypt routines in the hardware-accelerated stream path process full 16-byte blocks but do not advance the input/output pointers. The subsequent tail-handling code then operates on the original base pointers, effectively reprocessing the beginning of the buffer while leaving the actual trailing bytes unprocessed. The authentication checksum also excludes the true tail bytes. However, typical OpenSSL consumers using EVP are not affected because the higher-level EVP and provider OCB implementations split inputs so that full blocks and trailing partial blocks are processed in separate calls, avoiding the problematic code path. Additionally, TLS does not use OCB ciphersuites. The vulnerability only affects applications that call the low-level CRYPTO_ocb128_encrypt() or CRYPTO_ocb128_decrypt() functions directly with non-block-aligned lengths in a single call on hardware-accelerated builds. For these reasons the issue was assessed as Low severity. The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.2, 3.1 and 3.0 are not affected by this issue, as OCB mode is not a FIPS-approved algorithm. OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 and 1.1.1 are vulnerable to this issue. OpenSSL 1.0.2 is not affected by this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. OpenSSL 3.0 users should upgrade to OpenSSL 3.0.19. OpenSSL 1.1.1 users should upgrade to OpenSSL 1.1.1ze. (premium support customers only). This issue was reported on 16th December 2025 by Stanislav Fort (Aisle Research). The fix was developed by Stanislav Fort (Aisle Research). Out of bounds write in PKCS12_get_friendlyname() UTF-8 conversion (CVE-2025-69419) ================================================================================== Severity: Low Issue summary: Calling PKCS12_get_friendlyname() function on a maliciously crafted PKCS#12 file with a BMPString (UTF-16BE) friendly name containing non-ASCII BMP code point can trigger a one byte write before the allocated buffer. Impact summary: The out-of-bounds write can cause a memory corruption which can have various consequences including a Denial of Service. The OPENSSL_uni2utf8() function performs a two-pass conversion of a PKCS#12 BMPString (UTF-16BE) to UTF-8. In the second pass, when emitting UTF-8 bytes, the helper function bmp_to_utf8() incorrectly forwards the remaining UTF-16 source byte count as the destination buffer capacity to UTF8_putc(). For BMP code points above U+07FF, UTF-8 requires three bytes, but the forwarded capacity can be just two bytes. UTF8_putc() then returns -1, and this negative value is added to the output length without validation, causing the length to become negative. The subsequent trailing NUL byte is then written at a negative offset, causing write outside of heap allocated buffer. The vulnerability is reachable via the public PKCS12_get_friendlyname() API when parsing attacker-controlled PKCS#12 files. While PKCS12_parse() uses a different code path that avoids this issue, PKCS12_get_friendlyname() directly invokes the vulnerable function. Exploitation requires an attacker to provide a malicious PKCS#12 file to be parsed by the application and the attacker can just trigger a one zero byte write before the allocated buffer. For that reason the issue was assessed as Low severity according to our Security Policy. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the PKCS#12 implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 and 1.1.1 are vulnerable to this issue. OpenSSL 1.0.2 is not affected by this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. OpenSSL 3.0 users should upgrade to OpenSSL 3.0.19. OpenSSL 1.1.1 users should upgrade to OpenSSL 1.1.1ze (premium support customers only). This issue was reported on 16th December 2025 by Stanislav Fort (Aisle Research). The fix was developed by Norbert Pocs. Missing ASN1_TYPE validation in TS_RESP_verify_response() function (CVE-2025-69420) =================================================================================== Severity: Low Issue summary: A type confusion vulnerability exists in the TimeStamp Response verification code where an ASN1_TYPE union member is accessed without first validating the type, causing an invalid or NULL pointer dereference when processing a malformed TimeStamp Response file. Impact summary: An application calling TS_RESP_verify_response() with a malformed TimeStamp Response can be caused to dereference an invalid or NULL pointer when reading, resulting in a Denial of Service. The functions ossl_ess_get_signing_cert() and ossl_ess_get_signing_cert_v2() access the signing cert attribute value without validating its type. When the type is not V_ASN1_SEQUENCE, this results in accessing invalid memory through the ASN1_TYPE union, causing a crash. Exploiting this vulnerability requires an attacker to provide a malformed TimeStamp Response to an application that verifies timestamp responses. The TimeStamp protocol (RFC 3161) is not widely used and the impact of the exploit is just a Denial of Service. For these reasons the issue was assessed as Low severity. The FIPS modules in 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the TimeStamp Response implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 and 1.1.1 are vulnerable to this issue. OpenSSL 1.0.2 is not affected by this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. OpenSSL 3.0 users should upgrade to OpenSSL 3.0.19. OpenSSL 1.1.1 users should upgrade to OpenSSL 1.1.1ze. (premium support customers only). This issue was reported on 16th December 2025 by Luigino Camastra (Aisle Research). The fix was developed by Bob Beck. NULL Pointer Dereference in PKCS12_item_decrypt_d2i_ex function (CVE-2025-69421) ================================================================================ Severity: Low Issue summary: Processing a malformed PKCS#12 file can trigger a NULL pointer dereference in the PKCS12_item_decrypt_d2i_ex() function. Impact summary: A NULL pointer dereference can trigger a crash which leads to Denial of Service for an application processing PKCS#12 files. The PKCS12_item_decrypt_d2i_ex() function does not check whether the oct parameter is NULL before dereferencing it. When called from PKCS12_unpack_p7encdata() with a malformed PKCS#12 file, this parameter can be NULL, causing a crash. The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. Exploiting this issue requires an attacker to provide a malformed PKCS#12 file to an application that processes it. For that reason the issue was assessed as Low severity according to our Security Policy. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the PKCS#12 implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0, 1.1.1 and 1.0.2 are vulnerable to this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. OpenSSL 3.0 users should upgrade to OpenSSL 3.0.19. OpenSSL 1.1.1 users should upgrade to OpenSSL 1.1.1ze (premium support customers only). OpenSSL 1.0.2 users should upgrade to OpenSSL 1.0.2zn (premium support customers only). This issue was reported on 21st December 2025 by Luigino Camastra (Aisle Research). The fix was developed by Luigino Camastra (Aisle Research). Missing ASN1_TYPE validation in PKCS#12 parsing (CVE-2026-22795) ================================================================ Severity: Low Issue summary: An invalid or NULL pointer dereference can happen in an application processing a malformed PKCS#12 file. Impact summary: An application processing a malformed PKCS#12 file can be caused to dereference an invalid or NULL pointer on memory read, resulting in a Denial of Service. A type confusion vulnerability exists in PKCS#12 parsing code where an ASN1_TYPE union member is accessed without first validating the type, causing an invalid pointer read. The location is constrained to a 1-byte address space, meaning any attempted pointer manipulation can only target addresses between 0x00 and 0xFF. This range corresponds to the zero page, which is unmapped on most modern operating systems and will reliably result in a crash, leading only to a Denial of Service. Exploiting this issue also requires a user or application to process a maliciously crafted PKCS#12 file. It is uncommon to accept untrusted PKCS#12 files in applications as they are usually used to store private keys which are trusted by definition. For these reasons, the issue was assessed as Low severity. The FIPS modules in 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the PKCS12 implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 and 1.1.1 are vulnerable to this issue. OpenSSL 1.0.2 is not affected by this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. OpenSSL 3.0 users should upgrade to OpenSSL 3.0.19. OpenSSL 1.1.1 users should upgrade to OpenSSL 1.1.1ze. (premium support customers only). This issue was reported on 8th January 2026 by Luigino Camastra (Aisle Research). The fix was developed by Bob Beck. ASN1_TYPE Type Confusion in the PKCS7_digest_from_attributes() function (CVE-2026-22796) ======================================================================================== Severity: Low Issue summary: A type confusion vulnerability exists in the signature verification of signed PKCS#7 data where an ASN1_TYPE union member is accessed without first validating the type, causing an invalid or NULL pointer dereference when processing malformed PKCS#7 data. Impact summary: An application performing signature verification of PKCS#7 data or calling directly the PKCS7_digest_from_attributes() function can be caused to dereference an invalid or NULL pointer when reading, resulting in a Denial of Service. The function PKCS7_digest_from_attributes() accesses the message digest attribute value without validating its type. When the type is not V_ASN1_OCTET_STRING, this results in accessing invalid memory through the ASN1_TYPE union, causing a crash. Exploiting this vulnerability requires an attacker to provide a malformed signed PKCS#7 to an application that verifies it. The impact of the exploit is just a Denial of Service, the PKCS7 API is legacy and applications should be using the CMS API instead. For these reasons the issue was assessed as Low severity. The FIPS modules in 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the PKCS#7 parsing implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0, 1.1.1 and 1.0.2 are vulnerable to this issue. OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1. OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5. OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4. OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6. OpenSSL 3.0 users should upgrade to OpenSSL 3.0.19. OpenSSL 1.1.1 users should upgrade to OpenSSL 1.1.1ze. (premium support customers only). OpenSSL 1.0.2 users should upgrade to OpenSSL 1.0.2zn. (premium support customers only). This issue was reported on 8th January 2026 by Luigino Camastra (Aisle Research). The fix was developed by Bob Beck. General Advisory Notes ====================== URL for this Security Advisory: https://openssl-library.org/news/secadv/20260127.txt Note: the online version of the advisory may be updated with additional details over time. Only currently supported releases have been analysed. OpenSSL 3.1 and 3.2 are out of support and have not been analysed. For details of OpenSSL severity classifications please see: https://openssl-library.org/policies/general/security-policy/