CVE-2026-28388 Overview
CVE-2026-28388 is a Null Pointer Dereference vulnerability affecting OpenSSL's delta CRL (Certificate Revocation List) processing functionality. When a delta CRL containing a Delta CRL Indicator extension is processed, a NULL pointer dereference can occur if the required CRL Number extension is missing. This vulnerability can be exploited to cause a Denial of Service condition by triggering a crash in applications that process malformed delta CRL files.
Critical Impact
Applications using OpenSSL with delta CRL processing enabled during X.509 certificate verification are vulnerable to denial of service attacks when processing maliciously crafted CRL files.
Affected Products
- OpenSSL (versions prior to security patches)
- Applications using OpenSSL's X.509 certificate verification with X509_V_FLAG_USE_DELTAS enabled
- Systems processing certificates containing freshestCRL extensions or base CRLs with EXFLAG_FRESHEST flag
Discovery Timeline
- 2026-04-07 - CVE-2026-28388 published to NVD
- 2026-04-08 - Last updated in NVD database
Technical Details for CVE-2026-28388
Vulnerability Analysis
The vulnerability exists in OpenSSL's CRL verification code within the crypto/x509/x509_vfy.c file. During delta CRL processing, the code compares CRL numbers between the delta CRL and base CRL to ensure proper sequencing. However, the implementation fails to validate whether the crl_number field is NULL before attempting to dereference it.
According to the OpenSSL Security Advisory, exploiting this vulnerability requires specific conditions: the X509_V_FLAG_USE_DELTAS flag must be enabled in the verification context, the certificate being verified must contain a freshestCRL extension or the base CRL must have the EXFLAG_FRESHEST flag set, and an attacker must be able to provide a malformed CRL to an application that processes it.
The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. The OpenSSL FIPS modules in versions 3.6, 3.5, 3.4, 3.3, and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.
Root Cause
The root cause is a missing NULL pointer check in the delta CRL validation logic. When comparing CRL numbers to verify that the delta CRL number exceeds the full CRL number, the code directly accesses delta->crl_number without first verifying that this pointer is non-NULL. A malformed delta CRL that is missing the CRL Number extension will have this field set to NULL, causing a NULL pointer dereference when the comparison is attempted.
Attack Vector
An attacker can exploit this vulnerability by crafting a malformed delta CRL file that includes a Delta CRL Indicator extension but omits the required CRL Number extension. When an application configured with delta CRL processing attempts to verify certificates using this malformed CRL, the NULL pointer dereference triggers a crash.
The attack requires:
- Delta CRL processing to be enabled via X509_V_FLAG_USE_DELTAS
- The certificate chain to reference CRLs (via freshestCRL extension or EXFLAG_FRESHEST flag)
- The ability to supply a malformed CRL to the target application
// Security patch from OpenSSL commit (crypto/x509/x509_vfy.c)
if (ASN1_INTEGER_cmp(delta->base_crl_number, base->crl_number) > 0)
return 0;
/* Delta CRL number must exceed full CRL number */
+ if (delta->crl_number == NULL)
+ return 0;
return ASN1_INTEGER_cmp(delta->crl_number, base->crl_number) > 0;
}
Source: GitHub OpenSSL Commit
Detection Methods for CVE-2026-28388
Indicators of Compromise
- Unexpected application crashes during X.509 certificate verification operations
- Crash dumps showing NULL pointer dereference in OpenSSL's x509_vfy.c module
- Presence of malformed CRL files with Delta CRL Indicator extensions but missing CRL Number extensions
- Repeated certificate verification failures followed by process termination
Detection Strategies
- Monitor for application crashes in processes that perform certificate validation with OpenSSL
- Implement CRL file validation to detect malformed CRLs before processing
- Use static analysis tools to identify OpenSSL usage patterns with X509_V_FLAG_USE_DELTAS enabled
- Deploy runtime protection to detect NULL pointer dereference attempts in OpenSSL components
Monitoring Recommendations
- Enable core dump collection for applications using OpenSSL certificate verification
- Implement alerting on abnormal process terminations in TLS/SSL-enabled services
- Monitor CRL distribution points for anomalous or malformed CRL submissions
- Track certificate verification error rates that may indicate exploitation attempts
How to Mitigate CVE-2026-28388
Immediate Actions Required
- Update OpenSSL to the latest patched version addressing CVE-2026-28388
- Review applications to identify those using X509_V_FLAG_USE_DELTAS flag for certificate verification
- Consider temporarily disabling delta CRL processing if updates cannot be immediately applied
- Implement input validation for CRL files before processing
Patch Information
OpenSSL has released security patches to address this vulnerability. The fix adds a NULL pointer check for delta->crl_number before the comparison operation. Multiple commits have been issued for different OpenSSL branches:
Refer to the OpenSSL Security Advisory for complete patching information.
Workarounds
- Disable delta CRL processing by not setting the X509_V_FLAG_USE_DELTAS flag in the verification context
- Implement CRL validation in application code to reject CRLs missing required extensions before OpenSSL processing
- Use FIPS-validated OpenSSL modules (versions 3.0, 3.3, 3.4, 3.5, 3.6) which are not affected by this issue
- Configure network security controls to validate CRL sources and reject potentially malformed responses
# Check OpenSSL version and verify patch status
openssl version -a
# Verify if application uses delta CRL processing (search for flag usage)
grep -r "X509_V_FLAG_USE_DELTAS" /path/to/application/source/
# Update OpenSSL on Debian/Ubuntu systems
sudo apt update && sudo apt upgrade openssl libssl-dev
# Update OpenSSL on RHEL/CentOS systems
sudo yum update openssl openssl-devel
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


