☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Netty logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H 🐛 CWE-770
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-93488

CVE-2026-93488 Denial of Service in Netty
📅 PUBLISHED: 2026-09-18 00:00 UTC 🔄 UPDATED: 2026-10-10 23:04 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ distinct origins confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.80%
👁️
0.80% probability
20.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1499
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Global License: Open Source
Patch available — upgrade to latest release
CVSS VECTOR BREAKDOWN 7.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: N Integrity None
A: H Availability High
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-93488 is an unpatched denial-of-service vulnerability in the Netty networking framework, affecting the SpdySessionHandler component. Because localConcurrentStreams defaults to Integer.MAX_VALUE and the handler exposes no public API to lower this limit, a remote, unauthenticated peer can open a single SPDY connection and flood it with SYN_STREAM frames that never complete (FLAG_FIN=0). Each accepted stream allocates heap and direct memory, driving the hosting JVM toward OutOfMemoryError and rendering the service unavailable.

Any internet- or network-exposed application that terminates SPDY sessions with an affected Netty version is in scope. With a CVSS base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) and no PoC, exploit code, or CISA KEV listing as of this writing, the immediate risk is availability loss rather than confidentiality or integrity compromise — but the low attack complexity and zero authentication requirement make opportunistic resource-exhaustion attacks realistic.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

Netty is a widely used asynchronous event-driven network application framework for the JVM. Among its protocol codecs is the SPDY implementation, which handles Google's SPDY multiplexing protocol (the HTTP/2 predecessor) via a session-level handler class named SpdySessionHandler.

The vulnerability is a classic uncontrolled resource-consumption flaw (CWE-770). In SPDY, streams are multiplexed over one TCP connection, and each stream is opened by a SYN_STREAM frame from either endpoint. The session handler enforces a remote concurrency limit (the number of streams a peer will accept from us), but the analogous local bound — the number of remote-initiated streams we will accept — is governed by the field localConcurrentStreams. Per the NVD description, this field defaults to Integer.MAX_VALUE (2,147,483,647). No setter or configuration hook is exposed to application code, so integrators cannot lower it at runtime.

The result is that the local concurrency guard is effectively disabled. Every SYN_STREAM a remote peer transmits with FLAG_FIN=0 (i.e., opening a stream but not signaling end-of-stream) is accepted and tracked. Because the FIN flag is withheld, the peer never closes the logical stream, and the handler retains per-stream state indefinitely. As the count of tracked streams climbs, the associated heap objects and any direct memory allocations backing receive buffers accumulate monotonically.

The attack surface is therefore any JVM process that:

  1. Runs an affected Netty version, and
  2. Terminates SPDY connections reachable by an untrusted client — typically an HTTP(S) front end, proxy, or gateway that negotiates SPDY.

No authentication, no user interaction, and no special positioning beyond network reachability are required (AC:L, PR:N, UI:N). The only precondition is that the attacker can complete the SPDY handshake and issue frames.

Root cause summary:

  • Weakness class: Uncontrolled resource consumption (CWE-770).
  • Mechanism: Missing/ineffective upper bound on remote-initiated concurrent streams; default of Integer.MAX_VALUE; no API to override.
  • Trigger primitive: Repeated SYN_STREAM frames with FLAG_FIN=0 on a single persistent connection.
  • Consequence: Monotonic memory growth → JVM OutOfMemoryError → process denial of service.

No public proof-of-concept, exploit code, or Nuclei template was identified in the supplied intelligence. All mechanics below are derived strictly from the NVD description.


Exploitation Scenarios

No public PoC is available; the following attack chain is inferred from the vulnerability class (uncontrolled resource consumption) and the explicitly named protocol elements in the NVD description. No function names, endpoints, or parameters beyond those stated (SpdySessionHandler, localConcurrentStreams, SYN_STREAM, FLAG_FIN) are asserted.

1) Reconnaissance / target identification. The adversary identifies a reachable service that terminates SPDY via Netty. This can be done by probing for SPDY negotiation support (e.g., protocol negotiation on the exposed TLS listener) or by fingerprinting responses/headers characteristic of a Netty-backed gateway. Because the vulnerability is reachable pre-authentication, the attacker needs only network access to the listener — no credentials and no prior foothold.

2) Triggering the flaw class. The attacker establishes a single SPDY connection to the target and begins emitting SYN_STREAM frames. Critically, each frame is sent with FLAG_FIN=0, so the stream is opened but never terminated. The exploit does not rely on malformed or oversized frames; it relies on volume — sending a large number of well-formed SYN_STREAM frames. Because localConcurrentStreams effectively equals Integer.MAX_VALUE, the handler's local concurrency check never rejects the flood, and each frame results in additional retained per-stream state.

3) Payload / execution method (vulnerability-class level). This is a resource-exhaustion primitive: there is no code execution, memory corruption, or injection involved. The "payload" is simply the sustained stream of SYN_STREAM frames with the FIN bit unset. The attacker can parallelize across multiple connections to accelerate memory growth, though the description indicates a single connection suffices to accumulate unbounded allocations.

4) Post-exploitation impact. As retained stream state and backing buffers grow, heap and direct memory are consumed without release. The JVM eventually throws OutOfMemoryError, which typically renders the affected application unavailable — dropping legitimate sessions and, depending on deployment topology, cascading failures to upstream load balancers or dependent services. There is no described data exfiltration, privilege escalation, or integrity impact; the outcome is denial of service (availability only).

Constraints and unknowns. The rate and total volume required to exhaust a given heap are environment-specific and not specified in the available data. No public exploit tooling exists, so real-world weaponization would require the adversary to construct SPDY frame streams manually — feasible but not turnkey. No evidence of in-the-wild exploitation or threat-actor campaigns was found.


Impact Assessment

Per the supplied CVSS v3.1 vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (base 7.5):

  • Confidentiality: None (C:N) — no data disclosure is described.
  • Integrity: None (I:N) — no data or state modification is described.
  • Availability: High (A:H) — the terminal effect is a JVM OutOfMemoryError and service outage.
  • Attack Vector: Network (AV:N) — reachable over the network.
  • Attack Complexity: Low (AC:L) — no special conditions; the adversary simply floods SYN_STREAM frames.
  • Privileges Required: None (PR:N) — pre-authentication.
  • User Interaction: None (UI:N) — no victim action needed.
  • Scope: Unchanged (S:U) — impact is confined to the vulnerable component.

Affected systems. Any JVM service that (a) embeds an affected Netty build and (b) terminates SPDY sessions exposed to untrusted networks. This includes reverse proxies, API gateways, load balancers, and application servers using Netty's SPDY codec. The provided data lists no concrete affected version ranges and no OSV package entries, so precise scoping requires a software bill of materials and dependency inventory rather than a version cutoff.

Blast radius. Because Netty underpins many high-throughput network services, a single exposed instance can become a choke point: taking down a gateway can disrupt all downstream services it fronts. Memory pressure also risks JVM-wide degradation (GC thrashing) before full failure. However, the impact is availability-only, and CISA KEV status is NO, indicating no confirmed active exploitation as of the source data. EPSS is not yet scored by FIRST.org, so no probabilistic exploitation estimate should be assumed.


Detection Guidance

Sigma Rule

Detects JVM out-of-memory conditions consistent with unbounded stream allocation. Tune Image and log source to your environment.

title: Potential Netty SpdySessionHandler Memory Exhaustion (CVE-2026-93488)
id: 7f3c1a90-0b2e-4d55-9a1e-spdy93488demo
status: experimental
description: Detects JVM OutOfMemoryError events consistent with unbounded SPDY SYN_STREAM allocation in Netty.
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-93488
author: valtersit.com
date: 2026/01/01
logsource:
  product: linux
  service: syslog
detection:
  selection:
    - 'java.lang.OutOfMemoryError'
    - 'Direct buffer memory'
    - 'unable to create new native thread'
  condition: selection
falsepositives:
  - Legitimate memory-intensive JVM workloads
  - Misconfigured heap sizing
level: medium
tags:
  - attack.t1499
  - cve.2026.93488

YARA Rule

Detects Netty SPDY handler artifacts in packaged JARs or unpacked class payloads. Adjust paths as needed.

rule CVE_2026_93488_Netty_SpdySessionHandler
{
    meta:
        author = "valtersit.com"
        description = "Detects Netty SpdySessionHandler references in JARs/classes tied to CVE-2026-93488"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-93488"
        date = "2026-01-01"

    strings:
        $spdy1 = "SpdySessionHandler" ascii
        $spdy2 = "localConcurrentStreams" ascii
        $spdy3 = "SYN_STREAM" ascii
        $spdy4 = "spdy" ascii nocase

    condition:
        (uint32(0) == 0x504b0304) and  // ZIP/JAR magic
        any of ($spdy*)
}

Suricata IDS Rule

Flags high-volume SPDY SYN_STREAM control frames, a signature of the flood. SPDY control frames use version/type framing; the SYN_STREAM type value is used here as a detection anchor and should be validated against your capture baseline.

alert tcp any any -> any any (msg:"CVE-2026-93488 Netty SPDY SYN_STREAM Flood Attempt"; flow:established,to_server; content:"|80 03 00 01|"; depth:4; threshold:type both, track by_src, count 200, seconds 5; classtype:attempted-dos; reference:cve,2026-93488; sid:9348801; rev:1;)

Elastic Detection

EQL rule surfacing correlated OOM behavior on JVM hosts.

process where process.name == "java" and
  (
    message like~ "*OutOfMemoryError*" or
    message like~ "*Direct buffer memory*"
  )

Splunk SPL Query

Correlate repeated memory-pressure log lines and JVM exits on SPDY-serving hosts.

index=app OR index=syslog (source="*netty*" OR "java.lang.OutOfMemoryError" OR "Direct buffer memory")
| eval cve="CVE-2026-93488"
| stats count min(_time) as first_seen max(_time) as last_seen by host, source, cve
| where count > 5
| sort - count

Wazuh OSSEC Rule

Detects JVM OOM / direct-buffer exhaustion messages inline.

<group name="netty,cve-2026-93488,">
  <rule id="934880" level="10">
    <decoded_as>syslog</decoded_as>
    <match>java.lang.OutOfMemoryError</match>
    <description>CVE-2026-93488: Possible Netty SPDY memory exhaustion (OutOfMemoryError)</description>
    <mitre>
      <id>T1499</id>
    </mitre>
  </rule>
  <rule id="934881" level="10">
    <decoded_as>syslog</decoded_as>
    <match>Direct buffer memory</match>
    <description>CVE-2026-93488: Possible Netty SPDY direct-memory exhaustion</description>
    <mitre>
      <id>T1499</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 — UNPATCHED. No patch evidence from any tracked source. No vendor fix and no workarounds are available in the supplied data. Until a fix or workaround is published, mitigations must be architectural and defensive.

  1. Immediate mitigations

    • Reduce exposure: Firewall, ACL, or WAF the SPDY listeners so only trusted clients can reach them. Since SPDY is legacy, remove or deprecate SPDY termination entirely if a deployment no longer requires it.
    • Constrain the JVM: Set an explicit, conservative -Xmx and -XX:MaxDirectMemorySize so a runaway allocation fails predictably and restarts quickly rather than destabilizing the whole host. Configure liveness probes and automatic restart on OutOfMemoryError.
    • Rate-limit and cap connections: Apply connection/stream rate limiting at the edge (reverse proxy, load balancer) to cap the volume of SYN_STREAM frames from any single source.
    • Segment: Ensure a compromised or flooded gateway cannot exhaust shared memory with co-located critical workloads.
  2. Patch / upgrade steps

    • There is no known fixed version at this time. Monitor the Netty project's security advisories and the CVE-2026-93488 NVD entry for an official patch.
    • When a fix lands, upgrade the affected Netty dependency in every consuming artifact. Because Netty is a transitive dependency of many frameworks, audit via SBOM and dependency-tree analysis rather than assuming direct inclusion.
    • Prioritize patching internet-facing SPDY terminators first.
  3. Long-term hardening

    • Remove legacy protocols: SPDY is superseded by HTTP/2; eliminate SPDY termination to remove the attack surface entirely.
    • Enforce resource bounds: Adopt a policy requiring explicit upper limits on concurrent streams, connections, and memory in all network frameworks; treat defaults like Integer.MAX_VALUE as unsafe.
    • Dependency governance: Continuously track Netty versions across artifacts, run SBOM-driven vulnerability scanning, and maintain alerting on new advisories for foundational libraries.
    • Capacity and chaos testing: Verify that memory-pressure and stream-flood tests trigger alerting and graceful recovery.

References

Exploit-in-the-wild / threat-actor status: No public PoC, exploit code, Nuclei template, or CISA KEV listing was identified in the supplied intelligence. No threat-actor campaigns are attributed to CVE-2026-93488 as of this reporting.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:Netty
http.html:
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-93488/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.