CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2025-69420

OpenSSL TimeStamp: When a C Union Breaks the State of the Union

Alon Barad
Alon Barad
Software Engineer

Feb 9, 2026·5 min read·218 visits

Executive Summary (TL;DR)

OpenSSL trusted a C union without checking the tag. If you send a TimeStamp Response where the 'signing certificate' is an Integer instead of a Sequence, OpenSSL tries to read memory that isn't there. Result: Crash. Impact: DoS.

A classic type confusion vulnerability in OpenSSL's TimeStamp Protocol (TSP) implementation allows attackers to crash applications by supplying malformed ASN.1 structures. By treating a generic ASN.1 type as a Sequence without validation, the library performs an invalid pointer dereference, leading to a reliable Denial of Service.

The Hook: ASN.1, The Nightmare That Never Ends

If you've been in security research long enough, the mere mention of 'ASN.1' (Abstract Syntax Notation One) probably makes you reach for the nearest bottle of strong liquor. It is the protocol equivalent of a horror movie villain that refuses to stay dead. It's complex, archaic, and the parsers written for it are historically some of the most fragile code in existence.

CVE-2025-69420 is the latest entry in this saga. It targets the TimeStamp Protocol (TSP) defined in RFC 3161. TSP is what cryptographic systems use to prove a document existed at a specific time. It's the digital equivalent of holding a newspaper in a hostage video. OpenSSL, being the Swiss Army chainsaw of crypto, implements this protocol.

Here's the kicker: The vulnerability isn't some complex heap-feng-shui needing 400 lines of JavaScript to groom memory. It's a basic, fundamental failure to ask 'What is this thing?' before using it. It is the coding equivalent of drinking from a bottle labeled 'Milk' without checking if someone refilled it with bleach.

The Flaw: A Union Without a Label

To understand this bug, you need to understand the C union. In OpenSSL, generic ASN.1 objects are often stored in an ASN1_TYPE structure. This structure is a tagged union. It contains a type field (telling you what it is) and a value union (holding the data).

When OpenSSL parses a TimeStamp Response, it looks for the signingCertificate attribute. According to the spec, this should be a SEQUENCE. But in the world of vulnerability research, 'should' is where the fun begins.

The vulnerability lies in crypto/ts/ts_rsp_verify.c. The code grabs the attribute and immediately assumes it is a SEQUENCE. It accesses attr->value.sequence.

But what happens if the attacker sends an INTEGER? The ASN1_TYPE structure still exists, but the value union is holding an ASN1_INTEGER pointer, not an ASN1_STRING (sequence) pointer. The memory layout is different. The code blindly follows the pointer as if it were a sequence, leading it off a cliff.

The Code: The Smoking Gun

Let's look at the diff. It's painful in its simplicity. The vulnerable functions are ossl_ess_get_signing_cert and ossl_ess_get_signing_cert_v2.

Here is the vulnerable logic before the patch:

static ESS_SIGNING_CERT *ossl_ess_get_signing_cert(const PKCS7_SIGNER_INFO *si)
{
    ASN1_TYPE *attr;
    const unsigned char *p;
 
    // 1. Get the attribute. It returns a generic ASN1_TYPE.
    attr = PKCS7_get_signed_attribute(si, NID_id_smime_aa_signingCertificate);
    
    // 2. Check if it exists.
    if (attr == NULL)
        return NULL;
    
    // 3. THE BUG: Blindly access 'sequence' member of the union.
    p = attr->value.sequence->data;
    
    return d2i_ESS_SIGNING_CERT(NULL, &p, attr->value.sequence->length);
}

The fix is literally one check. The developer simply added a verification step to ensure the tag matches V_ASN1_SEQUENCE before touching the union member.

// The Fix (Commit 27c7012c91cc986a598d7540f3079dfde2416eb9)
    attr = PKCS7_get_signed_attribute(si, NID_id_smime_aa_signingCertificate);
-   if (attr == NULL)
+   if (attr == NULL || attr->type != V_ASN1_SEQUENCE)
        return NULL;

This is a classic 'Time-of-Check to Time-of-Use' (TOCTOU) logic error, except the 'Check' was entirely missing. They checked if the pointer existed, but not what it pointed to.

The Exploit: Crashing the Party

Exploiting this does not require advanced memory corruption techniques because we aren't trying to gain code execution (which would be much harder here). We just want to watch the world burn (or at least the process crash).

The Attack Chain

  1. Generate a Valid Request: Start with a legitimate TimeStamp Response.
  2. Locate the Attribute: Find the signingCertificate (OID 1.2.840.113549.1.9.16.2.12) or signingCertificateV2 (OID 1.2.840.113549.1.9.16.2.47).
  3. The Mutation: The attribute value is expected to be an ASN.1 SEQUENCE (Tag 0x30). Change this tag to INTEGER (0x02) or NULL (0x05).
  4. The Delivery: Send this malformed blob to any service using TS_RESP_verify_response().

Diagram of Failure

When attr->value.sequence->data is accessed, the code is effectively interpreting the bits of an Integer pointer (or NULL) as a Sequence struct. If attr->type was ASN1_NULL, the union value is often zeroed. Dereferencing 0x0->data is an immediate crash.

The Impact: Why Should We Care?

You might be thinking, "It's just a DoS, who cares?" In a microservices architecture, a DoS in a core cryptographic library is a massive headache.

Imagine a document management system that automatically verifies timestamps on incoming legal contracts. An attacker can flood this system with malformed responses. Every time the worker process touches one, it dies. If the process restart policy is slow or the attack volume is high, the entire ingestion pipeline grinds to a halt.

The CVSS score is 7.5 (High) because it is network exploitable (AV:N) and requires no privileges (PR:N). While it won't dump your database or give an attacker a shell, it effectively acts as a kill switch for any service relying on OpenSSL's TSP verification.

The Mitigation: Patch or Perish

The remediation is straightforward: Update OpenSSL. The vulnerability affects a wide range of versions, including the 3.x series and the lingering 1.1.1 support versions.

Patched Versions

  • OpenSSL 3.6 -> Upgrade to 3.6.1
  • OpenSSL 3.5 -> Upgrade to 3.5.5
  • OpenSSL 3.4 -> Upgrade to 3.4.4
  • OpenSSL 3.3 -> Upgrade to 3.3.6
  • OpenSSL 3.0 -> Upgrade to 3.0.19

If you cannot patch immediately, your only real mitigation is to disable TimeStamp verification in your application logic, or filter out TSP traffic at the firewall level if your application doesn't strictly require it. There is no configuration flag to turn off just this specific check; the code path is triggered automatically during response verification.

Official Patches

OpenSSLOfficial Security Advisory

Fix Analysis (1)

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Probability
0.07%
Top 79% most exploited
10
via Shodan

Affected Systems

OpenSSL 3.6.0OpenSSL 3.5.0OpenSSL 3.4.0OpenSSL 3.3.0OpenSSL 3.0.0OpenSSL 1.1.1

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenSSL
OpenSSL
3.6.03.6.1
OpenSSL
OpenSSL
3.5.03.5.5
OpenSSL
OpenSSL
3.4.03.4.4
OpenSSL
OpenSSL
3.3.03.3.6
OpenSSL
OpenSSL
3.0.03.0.19
AttributeDetail
CWECWE-754 / CWE-843
Attack VectorNetwork
CVSS v3.17.5 (High)
EPSS0.07%
ImpactDenial of Service
Exploit StatusPoC Possible (Trivial)

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
T1499.004Application or System Exploitation
Impact
CWE-754
Type Confusion

Improper Check for Unusual or Exceptional Conditions

Known Exploits & Detection

ContextNo public exploit released, but trivial to implement via ASN.1 mutation.
NucleiDetection Template Available

Vulnerability Timeline

Vulnerability reported by Aisle Research
2025-12-16
Fix committed by Bob Beck
2026-01-07
OpenSSL Advisory Published
2026-01-27

References & Sources

  • [1]OpenSSL Advisory
  • [2]CVE Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 6 hours ago•CVE-2026-48861
2.1

CVE-2026-48861: HTTP Request Splitting and Smuggling via Method Parameter CRLF Injection in Elixir Mint

CVE-2026-48861 is a client-side HTTP request-line CRLF (Carriage Return Line Feed) injection vulnerability in the popular Elixir HTTP client library, Mint. The vulnerability permits HTTP Request Splitting and HTTP Request Smuggling when an application forwards untrusted, attacker-controlled inputs to Mint's HTTP client requests as either the HTTP request method or target. By embedding CRLF characters within these parameters, an attacker can terminate the request line prematurely, inject malicious headers, or pipeline entirely independent requests. These smuggled requests are then processed by upstream or downstream proxy servers as separate HTTP queries on the same TCP connection. While Mint version 1.7.0 introduced target validation to secure the request target, the HTTP request method parameter remained completely unvalidated. This flaw allows attackers to bypass routing filters, access restricted internal APIs, or poison HTTP caches under default configurations.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 6 hours ago•CVE-2026-49753
6.3

CVE-2026-49753: HTTP Request/Response Smuggling via Inconsistent Content-Length Parsing in Elixir Mint Client

An Inconsistent Interpretation of HTTP Requests (HTTP Request/Response Smuggling) vulnerability in the Elixir Mint HTTP client allows attacker-controlled HTTP/1 servers to desynchronize response framing on shared connections due to over-lenient parsing of sign-prefixed Content-Length headers.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 7 hours ago•CVE-2026-49754
8.2

CVE-2026-49754: Denial of Service via Unbounded HTTP/2 CONTINUATION Frame Accumulation in Elixir Mint

An allocation of resources without limits or throttling vulnerability in Elixir Mint allows an attacker-controlled HTTP/2 server to exhaust memory in a Mint client. The vulnerability is exploited by sending a HEADERS frame without the END_HEADERS flag followed by an infinite stream of CONTINUATION frames. Because the client lacks limits on the incoming header-block accumulator, the client continuously consumes memory until an out-of-memory crash occurs.

Amit Schendel
Amit Schendel
7 views•6 min read
•about 7 hours ago•CVE-2026-48596
2.1

CVE-2026-48596: Improper Neutralization of CRLF Sequences in Elixir Tesla Multipart HTTP Client

CVE-2026-48596 is an Improper Neutralization of CRLF Sequences in HTTP Headers (HTTP Request/Response Splitting, CWE-113) in the Elixir Tesla HTTP client. The flaw resides in how multipart content-type parameters are joined and serialized, enabling attackers to inject arbitrary headers or split HTTP requests when applications pass untrusted inputs to the parameters of multipart uploads.

Alon Barad
Alon Barad
5 views•6 min read
•about 8 hours ago•CVE-2026-48594
8.2

CVE-2026-48594: Decompression Bomb Denial of Service in Elixir Tesla HTTP Client

An improper handling of highly compressed data (decompression bomb) vulnerability exists in the Elixir Tesla HTTP client when utilizing response decompression middlewares. By serving highly compressed responses or stacked content-encoding headers, a malicious server can cause arbitrary heap exhaustion, leading to a denial of service (DoS) crash in the BEAM virtual machine.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 8 hours ago•CVE-2026-48595
8.2

CVE-2026-48595: Cross-Origin Credential Leakage in Elixir Tesla Client via Case-Sensitive Redirect Filter Bypass

A high-severity security vulnerability in Elixir's Tesla HTTP client library (CVE-2026-48595) allows unauthenticated remote attackers to harvest sensitive credentials, including Authorization headers and cookies. The flaw resides in the 'Tesla.Middleware.FollowRedirects' component, which performs case-sensitive lookups when stripping credentials during cross-origin redirects. Because HTTP headers are case-insensitive by RFC specifications, standard canonical casing (e.g., 'Authorization') bypasses the lowercase-only blocklist, leaking tokens to untrusted external redirect destinations.

Alon Barad
Alon Barad
6 views•5 min read