Skip to main content

picotls EUVDEUVD-2026-114509

| CVE-2026-59993 MEDIUM
NULL Pointer Dereference (CWE-476)
2026-10-30 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Induce picotls client to connect to hostile TLS peer
  2. Exploit
    Send HelloRetryRequest then spoofed ServerHello
  3. Execution
    Trigger NULL pointer dereference in handshake
  4. Impact
    Crash client process (denial of service)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires picotls to be used specifically as the client-side TLS stack - the server-side use is not affected - and the victim client must initiate or complete a TLS handshake with an attacker-controlled or machine-in-the-middle peer. The peer must send a HelloRetryRequest and then a spoofed Hello message that the client processes, triggering the NULL-pointer dereference. Limiting factors that reduce real-world risk: impact is availability-only (process crash/DoS, no code execution or data exposure); the client must be induced to connect to the malicious peer (reflected in UI:R); and only revisions through 44bc503 are affected, with commit a06ca41 and later fixed.

Impact

This is a medium-severity, availability-only issue rather than a top-priority emergency. The input CVSS is 6.5 (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H): network-reachable and low-complexity with no privileges required (PR:N, so unauthenticated), but it requires user interaction (UI:R) because a picotls-based client must initiate/complete a handshake with the attacker-controlled or MITM peer, and impact is confined to availability (C:N/I:N) - a NULL-pointer dereference that crashes the consuming process. The vuln.today Decision label is this_month (not act_now/emergency), consistent with a real-but-bounded DoS. No EPSS score, no CISA KEV entry, and no public exploit were provided in the input, so exploitation probability and in-the-wild activity cannot be assessed from the data; the absence of KEV/EPSS is a data gap, not evidence of safety. Net: a legitimate patch-this-cycle issue for anyone running picotls in client mode, but not a widespread-exploitation crisis - the availability-only impact, UI:R dependency on connecting to a hostile peer, and client-only exposure all cap the real-world risk.

Exploit ScenarioDerived

An attacker who controls a TLS server, or who can machine-in-the-middle a connection, waits for a picotls-based client to connect, then responds with a HelloRetryRequest followed by a spoofed ServerHello that the client fails to validate, triggering a NULL-pointer dereference. The affected client process crashes, denying service to whatever other work that process was performing. No public exploit was identified in the provided data; the fix PR includes only a cipher-suite-mismatch regression test, not a crash PoC.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

A NULL-pointer dereference in the picotls TLS 1.3 library crashes any process that uses picotls as its client-side TLS stack when a malicious or man-in-the-middle peer answers a handshake with a HelloRetryRequest followed by a spoofed Hello message. Only builds up to and including revision 44bc503 are affected; the flaw is fixed in commit a06ca41. Impact is availability-only (process termination, no code execution or data disclosure), and the client must be induced to connect to the hostile peer, which is why the assessed vector carries a user-interaction requirement. No public exploit code and no confirmed active exploitation were identified at time of analysis.

RemediationAI

Apply the upstream fix by updating picotls to commit a06ca41 or later; the vendor advisory (https://github.com/h2o/picotls/security/advisories/GHSA-2xcv-h2pg-m99c) and PR https://github.com/h2o/picotls/pull/608 document the change, and no tagged release version is identified in the available sources, so distributors should be asked for the build that carries this commit. Because the trigger is client-side only, deployments that use picotls exclusively as a server-side stack are unaffected and need no urgent change. Where updating must be staged, reduce exposure by restricting outbound TLS connections to known-good upstream peers and by not pointing client-side picotls handshakes at untrusted or intermediary-terminated endpoints, accepting that this narrows legitimate connectivity; additionally, run TLS-client workloads under a supervisor or process isolation so a crash is restarted rather than taking down unrelated work in the same process, at the cost of added operational overhead and only partial blast-radius reduction.

Affected VersionsENISA

picotls < a06ca417a16f9126808bf5cabe6c5e6e0f16ecae

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

picotls is a C implementation of TLS 1.3 used by H2O and other projects, with pluggable crypto backends and cipher suites selected from a caller-supplied list. The weakness is CWE-476 (NULL pointer dereference) in the handshake state machine's ServerHello decoder. Under TLS 1.3 a server may respond to a ClientHello with a HelloRetryRequest and the client then expects a second, final ServerHello that must reuse the cipher suite named in the retry. The decoder in affected revisions did not enforce that invariant: it did not reject a HelloRetryRequest arriving while the client was already in the expect-second-ServerHello state, and it re-resolved the client's cipher suite from the incoming message rather than checking it against the already-negotiated suite. A spoofed Hello crafted into that window drove the key schedule into a state where no cipher-suite slot matched, so cipher-suite lookup returned no result and the code dereferenced a NULL pointer. The upstream fix adds an explicit unexpected-message alert when a retry request recurs in the second-ServerHello state, requires the final ServerHello cipher suite to equal the one chosen during the retry (failing with illegal_parameter otherwise), and adds an assertion guarding the cipher-slot lookup. The accompanying regression test mutates only the cipher-suite field of the final ServerHello to confirm the client aborts cleanly instead of crashing.

Know when Picotls gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
vuln.today AI 6.5 MEDIUM

A hostile TLS peer crashes a picotls client with no authentication (PR:N), but the client must connect to that peer (UI:R); only availability is affected (C:N/I:N/A:H).

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

Picotls is a TLS protocol library that allows users select different crypto backends based on their use case. In affected revisions through 44bc503, when picotls is used as a client-side TLS stack, a peer can send a HelloRetryRequest followed by a spoofed Hello message that causes a null-pointer dereference. This can terminate the consuming process, including a process performing other work, resulting in denial of service. This issue is fixed in commit a06ca41.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Low
niche TLS library, used mainly in h2o/quicly and QUIC stacks
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy