IM
IronMonkey Threat Research

CVE-2026-22796 MEDIUM

Published: 2026-01-27 | Last Modified: 2026-05-12 | Status: Modified

Description

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.

Additional Descriptions (1)

Resumen del problema: Existe una vulnerabilidad de confusión de tipos en la verificación de firma de datos PKCS#7 firmados, donde se accede a un miembro de la unión ASN1_TYPE sin validar primero el tipo, causando una desreferencia de puntero inválido o NULL al procesar datos PKCS#7 malformados. Resumen del impacto: Una aplicación que realiza la verificación de firma de datos PKCS#7 o que llama directamente a la función PKCS7_digest_from_attributes() puede ser inducida a desreferenciar un puntero inválido o NULL al leer, resultando en una denegación de servicio. La función PKCS7_digest_from_attributes() accede al valor del atributo de resumen del mensaje sin validar su tipo. Cuando el tipo no es V_ASN1_OCTET_STRING, esto resulta en el acceso a memoria inválida a través de la unión ASN1_TYPE, causando un fallo. Explotar esta vulnerabilidad requiere que un atacante proporcione un PKCS#7 firmado malformado a una aplicación que lo verifica. El impacto del exploit es solo una denegación de servicio, la API PKCS7 es heredada y las aplicaciones deberían usar la API CMS en su lugar. Por estas razones, el problema fue evaluado como de baja severidad. Los módulos FIPS en 3.5, 3.4, 3.3 y 3.0 no se ven afectados por este problema, ya que la implementación de análisis de PKCS#7 está fuera del límite del módulo FIPS de OpenSSL. OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0, 1.1.1 y 1.0.2 son vulnerables a este problema.

CVSS Metrics

Base Score: 5.3 (MEDIUM)

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Attack VectorNETWORK
Attack ComplexityLOW
Privileges RequiredNONE
User InteractionNONE
ScopeUNCHANGED
Confidentiality ImpactNONE
Integrity ImpactNONE
Availability ImpactLOW

Source: 134c704f-9b21-4f2e-91b3-4a467353bcc0

Type: Secondary

Exploitability Score: 3.9

Impact Score: 1.4

Weaknesses

Source Type Description
[email protected] Secondary
en CWE-754

Affected Products

Vendor Product Version Update Type
openssl openssl * <built-in method update of dict object at 0x7fd3104feb80> Application
openssl openssl * <built-in method update of dict object at 0x7fd3104fdb00> Application
openssl openssl * <built-in method update of dict object at 0x7fd3694e5c80> Application
openssl openssl * <built-in method update of dict object at 0x7fd319c74f80> Application
openssl openssl * <built-in method update of dict object at 0x7fd3104fcf00> Application
openssl openssl * <built-in method update of dict object at 0x7fd3104ffb80> Application
openssl openssl * <built-in method update of dict object at 0x7fd319c775c0> Application

Affected Configurations

Operator: OR

Vulnerable CPE
Yes cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*