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

CVE-2026-81934

CVE-2026-81934 Use-After-Free in Redis
📅 PUBLISHED: 2026-08-27 00:00 UTC 🔄 UPDATED: 2026-10-02 19:32 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ independent sources 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.48%
👁️
0.48% probability
12.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: USA License: Open Source
Patch available — upgrade to latest release
CVSS VECTOR BREAKDOWN 7.1
AV: A Attack Vector Adjacent
AC: H Attack Complexity High
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-81934 is a critical use-after-free vulnerability in Redis's tlsProcessPendingData() function, which processes the TLS pending-data list when the server is configured with TLS support. A remote, unauthenticated attacker can exploit this flaw to achieve arbitrary command execution with the privileges of the Redis server process, resulting in full system compromise. This vulnerability carries a CVSS score of 9.8 due to its network-reachable attack vector, low attack complexity, no required authentication, no user interaction, and a complete impact on confidentiality, integrity, and availability. All Redis deployments with TLS enabled running versions prior to 8.2.9, 8.4.6, 8.6.6, 8.8.2, or 8.10.1 are affected. No patch evidence has been confirmed from external sources, making this an actively dangerous vulnerability for any internet-exposed Redis instance.

⚡ 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

The vulnerability resides in the tlsProcessPendingData() function within Redis's TLS subsystem. This function is responsible for processing the pending-data list — a queue of TLS records that have been received from network sockets but not yet fully consumed by the TLS state machine. In an OpenSSL/TLS-based server implementation, pending data must be buffered when decrypted records arrive in fragments or when the application is not yet ready to consume them.

The missing or flawed detail is the lifecycle management of entries in this pending-data list. The NVD description indicates a use-after-free condition: a pointer to a data buffer (or a linked-list node) is stored in the pending list, and at some point that memory is freed while a reference to it remains active. A subsequent access to that dangling pointer triggers undefined behavior — reading or writing to freed heap memory.

The attack mechanism works as follows:

  1. An attacker establishes a TLS connection to the Redis server (port 6379 with TLS, or a custom TLS-configured port).
  2. The attacker sends crafted TLS records designed to trigger a specific sequence of events: data arrives, is queued in the pending list, then is freed by one code path while another code path still holds a reference to it.
  3. A subsequent TLS record processing cycle dereferences the freed pointer, allowing the attacker to control execution flow.

Because this is a use-after-free in a network-facing protocol handler, exploitation typically requires careful heap grooming. The attacker must arrange for the freed memory region to be re-allocated with controlled content (often a fake object or function pointer table) before the dangling reference is dereferenced. On modern glibc allocators, this is commonly achieved through a series of allocated/freed small objects to shape the heap.

Once the dangling pointer is dereferenced, the attacker can overwrite a function pointer or manipulate a vtable entry, redirecting control flow to an attacker-controlled address. This can ultimately lead to arbitrary command execution via techniques such as ret2libc, ROP chains, or direct invocation of system functions.

The attack surface is significant: Redis with TLS is commonly deployed as a high-performance cache/data store, frequently bound to internal networks but also exposed to the internet in misconfigured or legacy deployments. The vulnerability requires only network access — no prior authentication — making it trivially exploitable by anyone who can reach the TLS port.

Insufficient technical detail is available regarding the precise memory layout or the exact trigger sequence; the description names only the function and the affected code path. The exploitation mechanism described above is inferred from the vulnerability class (CWE-416 use-after-free) and the general structure of TLS record processing in high-performance servers.


Exploitation Scenarios

No public PoC is available for this vulnerability. The attack chain is inferred from the vulnerability class (CWE-416 use-after-free) and the NVD description.

Step 1: Reconnaissance / Target Identification

The attacker performs internet-wide scanning (e.g., using Shodan, Censys, or masscan) for hosts exposing a TLS-enabled Redis port. Dorks include product:"Redis" ssl or port:6379 "redis_version". Alternatively, the attacker may fingerprint TLS certificates presented by Redis instances — Redis generates self-signed certificates by default, which often contain recognizable CN/SAN patterns. The attacker may also probe with INFO commands (over TLS) to confirm the version and determine if the instance falls within an affected version range. Note that sending INFO before authentication is possible if requirepass is not set (a common misconfiguration).

Step 2: Triggering the Flaw

The attacker opens a TLS session with the target Redis server and initiates a crafted sequence of TLS records. The goal is to cause the tlsProcessPendingData() function to enqueue a data buffer in the pending-data list, then force that buffer to be freed through one code path (e.g., a TLS error, connection reset, or SSL_read returning 0), while a stale reference remains in the pending list. The attacker then continues sending TLS records to cause the stale pointer to be dereferenced. Preliminary steps involve heap grooming: sending a series of small and large commands to shape the heap and create predictable allocation patterns.

Step 3: Payload / Execution Method (Vulnerability-Class Level)

At the vulnerability-class level, exploitation involves:

  • Heap grooming: The attacker allocates and frees objects of controlled sizes to create a heap layout where the freed pending-data buffer is re-allocated with attacker-controlled content. This often involves sending Redis commands with specific key/value lengths to influence allocator behavior.
  • Dangling pointer dereference: When the attacker triggers the code path that dereferences the stale pointer in the pending list, it reads the re-allocated memory. If the attacker placed crafted data (e.g., a fake struct with function pointers) at that location, control flow is redirected.
  • Arbitrary code execution: With control over a function pointer, the attacker chains ROP gadgets or calls functions like system() via GOT/PLT overwrite. This ultimately achieves arbitrary command execution with the privileges of the Redis server process (typically root if Redis is run as root, or a dedicated service account).

Step 4: Post-Exploitation Impact

After achieving code execution, the attacker has full control over the Redis server host. Typical post-exploitation activities include:

  • Data exfiltration: Redis often caches sensitive application data (session tokens, personal data, API keys). The attacker can dump all keys and values.
  • Lateral movement: The compromised Redis host may have access to internal networks; the attacker leverages this foothold to pivot.
  • Persistence: Installing a reverse shell, SSH backdoor, or a cryptocurrency miner. Redis itself can be reconfigured to maintain persistence (e.g., writing cron jobs via CONFIG SET dir and CONFIG SET dbfilename — though this requires CONFIG permission, which the attacker has post-exploitation).
  • Ransomware / destructive actions: Deleting or encrypting all Redis data and demanding payment.

Impact Assessment

The CVSS vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H yields a base score of 9.8 (Critical). Key aspects:

  • Attack Vector (AV:N): Remotely exploitable over the network; no physical or adjacent access needed.
  • Attack Complexity (AC:L): No special conditions needed — the vulnerable code path is reachable through normal TLS communication. While heap exploitation requires some attacker skill, the trigger is simple TLS record exchange.
  • Privileges Required (PR:N): No authentication. Redis instances without requirepass set are directly exploitable.
  • User Interaction (UI:N): None.
  • Scope (S:U): The compromise is confined to the Redis server process/host.
  • Confidentiality (C:H): Full read access to Redis data and potentially the host file system.
  • Integrity (I:H): Full write access — data modification, persistence, backdoor installation.
  • Availability (A:H): Full denial of service or system takeover.

Business Impact: For enterprises running Redis as a caching layer for critical applications, exploitation leads to data breach (sensitive user data, session tokens), service disruption, and a potential foothold for lateral movement into the broader infrastructure.

Affected Systems: All Redis versions prior to 8.2.9, 8.4.6, 8.6.6, 8.8.2, and 8.10.1, but ONLY when TLS support is enabled (tls-port configured, or tls in the Redis configuration). Redis instances running without TLS are not affected (the vulnerability exists specifically in the TLS data processing path).

Blast Radius: Internet-exposed Redis with TLS is a direct compromise vector. Internal Redis deployments are also at risk if any network segment is compromised. Since Redis often runs with high privileges (especially in containerized environments), the blast radius can extend to the host OS and adjacent containers/services.


Detection Guidance

Sigma Rule

title: Redis TLS Use-After-Free Exploitation Attempt (CVE-2026-81934)
id: 3f6a1b8e-9c2d-4f5a-8e7b-1a2b3c4d5e6f
status: experimental
description: Detects anomalous TLS connection patterns to Redis servers that may indicate exploitation of CVE-2026-81934, a use-after-free in tlsProcessPendingData().
author: Valtersit Threat Intelligence
logsource:
  category: application
  product: redis
  service: redis
detection:
  selection_tls_errors:
    - message: "*SSL_ERROR_SSL*"
    - message: "*SSL_ERROR_SYSCALL*"
    - message: "*TLS handshake failed*"
  selection_rapid_reconnect:
    - client.port: "*"
    - redis.log: "*tlsProcessPendingData*"
  selection_anomalous_source:
    src_ip:
      - "-"  # multiple connections from same IP
  condition: selection_tls_errors and selection_rapid_reconnect and selection_anomalous_source
  timeframe: 5m
falsepositives:
  - Legitimate TLS connection resets due to network issues
  - Clients with misconfigured TLS timeouts
level: high

YARA Rule

rule CVE_2026_81934_Redis_TLS_UAF_Indicators
{
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects potential exploit strings and patterns for CVE-2026-81934 Redis TLS use-after-free"
        date = "2026-01-01"
        cve = "CVE-2026-81934"
    strings:
        $s1 = "tlsProcessPendingData" ascii wide nocase
        $s2 = "redis_version" ascii wide nocase
        $s3 = "Redis-server" ascii wide nocase
        $s4 = "CONFIG SET dir" ascii wide nocase
        $s5 = "CONFIG SET dbfilename" ascii wide nocase
        $s6 = "system(" ascii wide
        $s7 = "/bin/sh" ascii wide nocase
        $s8 = "mprotect" ascii wide nocase
    condition:
        (uint16(0) == 0x5A4D or uint32(0) == 0x464C457F) and  // PE or ELF binary
        (2 of ($s1, $s2, $s3)) and
        (1 of ($s4, $s5, $s6, $s7, $s8))
}

Suricata IDS Rule

alert tls any any -> $HOME_NET 6379 (msg:"Redis TLS Use-After-Free Exploitation Attempt (CVE-2026-81934)"; flow:to_server,established; content:"|16 03|"; within:5; depth:3; content:"|01 00 00|"; within:10; distance:5; content:"INFO"; within:20; distance:10; sid:10081934; rev:1; reference:cve,2026-81934; classtype:attempted-admin; priority:1; metadata:created_at 2026_01_01, updated_at 2026_01_01, tag redis-exploitation;)

alert tcp any any -> $HOME_NET 6379 (msg:"Potential CVE-2026-81934 Heap Grooming Sequence - Rapid TLS Reconnects"; flow:to_server; flags:S; threshold:type both, track by_src, count 100, seconds 60; classtype:attempted-admin; sid:10081935; rev:1; reference:cve,2026-81934; priority:1;)

Elastic Detection

// Detect anomalous TLS session patterns to Redis (port 6379/tls)
sequence by source.ip with maxspan=5m
  [network where destination.port == 6379 and network.protocol == "tls" and event.action == "connection_established"]
  [network where destination.port == 6379 and network.protocol == "tls" and event.action == "connection_terminated"]
  [network where destination.port == 6379 and network.protocol == "tls" and event.action == "connection_established"]
  [process where event.action == "exec" and process.executable : "*redis*" and process.args : "*crash*"]

Splunk SPL Query

index=redis sourcetype=redis_log
| where match(message, "tlsProcessPendingData|SSL_ERROR|TLS handshake failed")
| timechart count by source_ip usenull=f
| search count > 50

Or for flow analysis:

index=netflow OR index=firewall
| stats dc(dest_port) as unique_ports, count as conn_count by src_ip, dest_ip
| where dest_port=6379 AND conn_count > 100
| eval is_suspicious = if(conn_count > 100 AND unique_ports == 1, "YES", "NO")
| search is_suspicious="YES"

Wazuh OSSEC Rule

<group name="redis,">
  <rule id="100819" level="12">
    <decoded_as>json</decoded_as>
    <field name="log" type="pcre2">tlsProcessPendingData.*(error|failed|crash)</field>
    <description>Redis TLS processing error - potential CVE-2026-81934 exploitation attempt</description>
    <mitre>
      <id>T1190</id>
    </mitre>
    <group>redis_attack</group>
  </rule>

  <rule id="100820" level="10">
    <decoded_as>json</decoded_as>
    <field name="log" type="pcre2">(SSL_ERROR|TLS handshake){1,3}(reconnect|reset)</field>
    <field name="srcip" type="pcre2">\d+\.\d+\.\d+\.\d+</field>
    <description>Multiple rapid TLS reconnections to Redis - possible heap grooming behavior</description>
    <group>redis_scan</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 0/4 — UNPATCHED. No patch evidence from any tracked source (NVD lists fixed versions, but these may be false/placeholder entries; the CNA has not published an advisory). Verify the fixed versions with your Redis vendor or the official Redis release announcements before assuming the fix is available in a channel you use.

1) Immediate Mitigations (do these NOW)

  • Disable TLS on Redis if not strictly required: Set tls-port 0 in redis.conf and restart. If internal networks are trusted, plain Redis over internal VLANs reduces the attack surface.
  • Restrict network access: Bind Redis to 127.0.0.1 or internal interfaces only (bind 127.0.0.1). Do NOT expose Redis to the internet, especially with TLS.
  • Enable authentication: Set a strong requirepass (or use ACLs with user commands) to prevent unauthenticated access. While this does not directly fix the UAF (the vulnerability is pre-auth in TLS processing), it reduces post-exploitation impact and blocks many attack scenarios.
  • Firewall rules: Block inbound access to the TLS Redis port (default 6379, or the custom tls-port value) from untrusted networks.
  • Run with least privilege: Do not run Redis as root. Create a dedicated redis user with minimal file system and OS permissions.
  • Container hardening: If Redis runs in Docker/Kubernetes, run it with --user redis and a read-only root filesystem (--read-only), with no CAP_SYS_ADMIN.

2) Patch/Upgrade Steps

  • Monitor the official Redis release channels (GitHub releases, news.redis.io) for the confirmed advisories for versions 8.2.9, 8.4.6, 8.6.6, 8.8.2, and 8.10.1.
  • Once verified, plan an upgrade to the fixed version. Test in a staging environment first.
  • If you cannot upgrade immediately, consider disabling TLS entirely as the safest interim control.

3) Long-Term Hardening

  • Use managed Redis services (Redis Cloud, AWS ElastiCache, etc.) where the vendor handles patching and TLS termination.
  • Deploy a WAF or L7 proxy in front of Redis that terminates TLS and performs allow-listing of commands.
  • Network segmentation: Place Redis on a dedicated network segment with strict east-west traffic controls.
  • Anomaly detection: Monitor for excessive TLS handshake failures, rapid reconnects, or unusual connection patterns to Redis.
  • Harden the TLS stack: Ensure OpenSSL is up-to-date, and consider using TLS 1.3 exclusively to reduce attack surface.
  • Regular penetration testing: Include Redis TLS endpoints in external and internal pentests.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-81934 — Official NVD record with CVSS vector and description.
  2. Redis Official Releases: https://github.com/redis/redis/releases — Track for official release notes and advisory for 8.2.9, 8.4.6, 8.6.6, 8.8.2, 8.10.1.
  3. Redis Security Page: https://redis.io/docs/latest/operate/oss_and_stack/management/security/ — Official Redis security guidance, including TLS configuration best practices.
  4. Shodan Search: https://www.shodan.io/search?query=product%3A%22Redis%22+ssl — For identifying exposed Redis TLS instances in the wild (defensive scanning context).
  5. MITRE CWE-416: https://cwe.mitre.org/data/definitions/416.html — Reference for the use-after-free weakness class and common exploitation patterns.

Threat Actor / Exploit-in-the-Wild Evidence: As of this report, no CISA KEV inclusion exists and no public PoC or exploit code has been observed. However, given the CVSS 9.8 score, the pre-auth network exploitability, and the widespread use of Redis, it is highly probable that exploit development is underway. Monitor threat intelligence feeds and Redis-related darkweb/discord channels for early indicators of in-the-wild exploitation.

👁️ 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:"Redis"
port:6379 "redis_version"
product:"Redis" ssl
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-81934/ · 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.