| Name | CVE-2026-23631 |
| Description | Redis is an in-memory data structure store. In all versions of redis-server with Lua scripting, an authenticated attacker can exploit the master-replica synchronization mechanism to trigger a use-after-free on replicas where replica-read-only is disabled or can be disabled, which may lead to remote code execution. A workaround is to prevent users from executing Lua scripts or avoid using replicas where replica-read-only is disabled. This is patched in version 8.6.3. |
| Source | CVE (at NVD; CERT, ENISA, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
| References | DLA-4682-1, DSA-6538-1 |
| Debian Bugs | 1147421 |
The table below lists information on source packages.
| Source Package | Release | Version | Status |
|---|---|---|---|
| redict (PTS) | forky, sid | 7.3.6+ds-3 | vulnerable |
| redis (PTS) | bookworm | 5:7.0.15-1~deb12u7 | vulnerable |
| bookworm (security) | 5:7.0.15-1~deb12u10 | fixed | |
| trixie | 5:8.0.2-3+deb13u2 | vulnerable | |
| trixie (security) | 5:8.0.2-3+deb13u3 | fixed | |
| forky, sid | 5:8.0.6-3 | fixed | |
| valkey (PTS) | trixie (security), trixie | 8.1.1+dfsg1-3+deb13u2 | vulnerable |
| forky, sid | 9.1.2-1 | fixed |
The information below is based on the following data on fixed versions.
| Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
|---|---|---|---|---|---|---|
| redict | source | (unstable) | (unfixed) | |||
| redis | source | experimental | 5:8.6.3-1 | |||
| redis | source | bookworm | 5:7.0.15-1~deb12u8 | DLA-4682-1 | ||
| redis | source | trixie | 5:8.0.2-3+deb13u3 | DSA-6538-1 | ||
| redis | source | (unstable) | 5:8.0.6-3 | 1147421 | ||
| valkey | source | (unstable) | 9.1.1-1 |
[bullseye] - redis <ignored> (Invasive to backport entire timedOut mechanism etc.)
https://github.com/redis/redis/security/advisories/GHSA-8ghh-qpmp-7826
https://www.zeroday.cloud/blog/redis-cve-2026-23631-dark-replica
Fixed by: https://github.com/redis/redis/commit/0cca172a174642bdae03b871615227896274d9bb (8.6.3)
valkey is affected as well, readSyncBulkPayload() has no isInsideYieldingLongCommand()
guard; valkey 8.1.4 and earlier lack the fix.
https://github.com/valkey-io/valkey/pull/3625
valkey fixed by: https://github.com/valkey-io/valkey/commit/c7c92db43b63be0599a076590f012ed35d279a47 (8.1.7)
redict has the yielding-long-command mechanism but readSyncBulkPayload() lacks the guard