What Redis CVE-2026-23479 Is and Why It Matters
Redis CVE-2026-23479 is an authenticated remote code execution vulnerability caused by a use-after-free bug in Redis’s blocking-client logic, allowing a logged-in attacker to execute arbitrary operating system commands on the host running Redis and potentially take full control of the server process. The flaw affects Redis 7.2.0 and later stable branches, and it remained unnoticed for about two years before an autonomous AI security tool, Team Xint Code, identified it during a bug-hunting contest. The issue lives in the unblockClientOnKey() function, which continues using a client pointer after a call that may free it, leading to memory corruption. While the bug requires authenticated access, Redis often runs in cloud environments where default users hold wide privileges, meaning the authenticated RCE flaw still represents a serious risk for exposed or poorly segmented deployments.
Technical Overview: From Use-After-Free to Remote Code Execution
At its core, Redis CVE-2026-23479 is a CWE-416 use-after-free in unblockClientOnKey() in src/blocked.c. When a key event resumes a blocked client, Redis dispatches the pending command via processCommandAndResetClient(), then keeps using the same client structure even though that function can free it. The call’s return value is ignored, so subsequent reads operate on freed memory. According to The Hacker News, “two commits planted it, two years hid it,” as separate refactors in January and March 2023 became dangerous only in combination and then shipped in Redis 7.2.0. The published exploit chain first leaks a heap pointer with a single-line Lua EVAL, then grooms client structures and memory limits to reoccupy freed memory with a fake client. Finally, attacker-controlled fields influence updateClientMemoryUsage() to overwrite a function pointer in the Global Offset Table, redirecting strcasecmp() to system() so the next Redis command runs as a shell command.
Affected Redis Versions and Patch Timeline
The remote code execution vulnerability was introduced in Redis 7.2.0 and persisted across multiple stable series until May 5, when the Redis security patch was released. All of these versions are affected: 7.2.0–7.2.13, 7.4.0–7.4.8, 8.2.0–8.2.5, 8.4.0–8.4.2, and 8.6.0–8.6.2. The corresponding fixed releases are 7.2.14, 7.4.9, 8.2.6, 8.4.3, and 8.6.3, which Redis describes as drop-in minor upgrades within each series. NVD rates the bug 8.8 under CVSS 3.1, while Redis scores it 7.7 under CVSS 4.0, reflecting its high impact but need for authenticated access. Redis reports no evidence of exploitation in its own or customer environments so far, and no confirmed in-the-wild attacks are public, but the complete technical write-up and exploit chain are now available, increasing the likelihood that attackers will try to reproduce the vulnerability against unpatched systems.
Threat Model: Authenticated RCE in the Cloud Era
Although Redis CVE-2026-23479 needs an authenticated session, the threat surface is wider than it appears. Many Redis deployments, especially in cloud environments, run with the default user enabled and no password, or with a single shared application credential that holds broad permissions. The exploit chain requires access to CONFIG SET, EVAL, stream commands like XREAD and XADD, and basic SET/GET, which map to @admin, @scripting, @stream, and @read/@write ACL categories. In the default configuration, the built-in user typically has all of these rights. Wiz’s analysis highlights that Redis appears in a large majority of cloud environments, making misconfigured or internet-exposed instances prime targets. The official Redis Docker image ships with partial RELRO, leaving the Global Offset Table writable and simplifying the function-pointer overwrite step, while ASLR and PIE offer little protection because the critical write is relative to a known global symbol.
Actionable Steps for Administrators to Secure Redis
Administrators should prioritize upgrading to a fixed version of Redis to remove the remote code execution vulnerability: 7.2.14, 7.4.9, 8.2.6, 8.4.3, or 8.6.3, depending on the current branch. Patch internet-exposed instances and shared application clusters first, as they present the highest risk if credentials are stolen or misused. Where patching must wait, keep Redis off the public internet, require TLS, and enforce authentication with strong, unique credentials. Tighten ACLs so no single role combines CONFIG, @admin, @scripting, and @stream access; if Lua scripting is not required, deny @scripting entirely to block the initial heap leak stage. Removing CONFIG from application roles breaks the published exploit chain, though it does not fix the underlying bug. Rotate widely shared Redis passwords or API keys, and review managed Redis services’ patch schedules, even though Redis Cloud has already been updated.






