What changed in Redis from 7 to 8
10 releases numbered after 7.4.11 up to and including 8.10.1, stable releases only. 7.4.11 and 8.10.1 are the newest stable releases of 7 and 8 we track; this page follows them as new ones ship.
- 1 CVE mentioned
- Spans branches 8.10, 8.8, 8.6, 8.4, 8.2 — the list is by date, and a branch's own patches sit between the other's.
52 changes across 10 releases · 14 landed on more than one version
- Compact hashes - a new hash encoding that reduces memory usage by storing hash field names just once for keys that share a schema
- New command: HIMPORT - high-throughput compact hash bulk insertion
- TLS peer certificate-based server-to-server authentication
- New commands: LMOVEM, BLMOVEM - move multiple elements between lists
- New command: SUNIONCARD - get the cardinality of the union of multiple sets
- New command: SDIFFCARD - get the cardinality of the difference between sets
- New command: BACKUP - node-side implementation for backup and restore based on multi-part AOF
- XREAD, XREADGROUP - new MAXCOUNT and MAXSIZE arguments to cap the cumulative reply entries and size
- New command: FT.ALIASLIST - get all aliases for the index
- Stemmer support for Malay and Tagalog languages
- JSONPath extensions
- New commands: TS.NRANGE, TS.NREVRANGE - query a range across multiple time series; group results by timestamp
- New command: TS.READ - optionally blocking read
- New command: TS.QUERYLABELS - get a list of labels and label-values
- TS.MRANGE, TS.MREVRANGE - new EXCLUDEEMPTY argument to exclude series with no reported samples
- Prevented a division-by-zero error when active defragmentation thresholds are configured with equal or reversed value
- Clients blocked on BLPOP, BLMOVE, or BLMOVEM could remain blocked after SORT with STORE replaced the target key with a list
- Memory usage reported for compressed replication clients could be lower than the actual memory consumed
- Loading an AOF file with an RDB preamble could fail when active defragmentation was enabled
- FT.CREATE and FT.ALTER now reject an empty string as a field name
- Fix miscalculated buffer size in CMSketch RDB loading that may lead to heap out-of-bounds write (CVE-2026-62356)also in8.8.28.6.68.4.68.2.9
- Fix out-of-bounds access in TopK heap cleanup pathalso in8.4.68.2.9
- Fix use-after-free in the TLS pending-data list when a command closes another pending connectionalso in8.8.28.6.68.4.68.2.9
- Fix memory corruption during RDB loading when a malicious payload contains an out-of-range SLOT_INFO slot id
- Fix missing node level validation when loading a vector set from RDB that may lead to out-of-bounds accessalso in8.4.68.2.9
- Fix use-after-free when VREM mutates the HNSW graph while background VSIM threads are still running
- Fix negative hnsw_search() return treated as huge unsigned count reading past the end of result arrays
- Fix TLS client certificate authentication bypass where a Common Name containing an embedded NUL byte was truncated
- Fix use-after-free in the blocked-client list when reprocessing a command evicts another client blocked on the same keyalso in8.6.68.4.68.2.9
- Fix out-of-bounds access in TopK heap cleanup path (MOD-15410)also in8.6.6
- Fix ACL key permission bypass in SORT, GEORADIUS/GEORADIUSBYMEMBER and XREAD/XREADGROUP commands where validated keys could differ from actually accessed keys
- Fix memory corruption during RDB loading from malicious payload with out-of-range SLOT_INFO slot id that may lead to Remote Code Executionalso in8.2.9
- Fix missing node level validation in Vector Sets when loading from RDB that may lead to out-of-bounds access
- Fix use-after-free in Vector Sets when VREM mutates the HNSW graph while background VSIM threads are still running
- Fix Vector Sets negative hnsw_search() return treated as huge unsigned count, reading past the end of result arraysalso in8.6.68.2.9
- Fix TLS client certificate authentication bypass where Common Name containing embedded NUL byte was truncated, allowing client to authenticate as another ACL useralso in8.6.6
- Fix use-after-free in blocked-client list when reprocessing a command evicts another client blocked on the same key
- Fix ACL key permission bypass in SORT, GEORADIUS/GEORADIUSBYMEMBER and XREAD/XREADGROUP where validated keys could differ from actually accessed keys
- Fix memory corruption during RDB loading caused by out-of-range SLOT_INFO slot id that may lead to Remote Code Executionalso in8.4.6
- Fix Vector Sets missing node level validation when loading from RDB that may lead to out-of-bounds access
- Fix Vector Sets use-after-free when VREM mutates the HNSW graph while background VSIM threads are running
- Fix ACL key permission bypass in SORT, GEORADIUS, GEORADIUSBYMEMBER, XREAD, and XREADGROUP commands
- Fix out-of-bounds argv access during key extraction when checking ACL permissions of KEYNUM keyspec commands with wrong arityalso in8.2.9
- Fix use-after-free in Vector Sets when VREM mutates the HNSW graph while background VSIM threads are runningalso in8.2.9
- Fix negative hnsw_search() return being treated as huge unsigned count, reading past the end of result arrays in Vector Sets
- Fix ACL key permission bypass in SORT, GEORADIUS/GEORADIUSBYMEMBER and XREAD/XREADGROUP commands
- Fixed crafted RESTORE payloads in RedisBloom and TDigest that may trigger out-of-bounds writes, potentially leading to remote code execution
- Fix a crafted stream RESTORE payload that could make two consumers share the same NACK, leading to a use-after-free and potential Remote Code Execution
- Fix crafted RESTORE payloads in RedisBloom and TDigest that may trigger out-of-bounds writes, potentially leading to remote code executionalso in8.4.58.2.8
- Fix a crafted stream RESTORE payload vulnerability that could make two consumers share the same NACK, leading to a use-after-free and potential Remote Code Execution
- Fix a crafted stream RESTORE payload that could make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution
Original release notes, newest first
The list above is our reading of these notes; the originals from Redis are here, one fold per release.
8.10.1
Update urgency: SECURITY: There are security fixes in the release.
Security fixes
- (CVE-2026-62356) Miscalculated buffer size in
CMSketchRDB loading may lead to heap OOB write - Out-of-bounds access in TopK heap cleanup path (MOD-15410)
- Use-after-free in the TLS pending-data list when a command closes another pending connection
- A malicious RDB payload with an out-of-range
SLOT_INFOslot id causes memory corruption during RDB loading, which may lead to Remote Code Execution - Vector Sets: missing node level validation when loading a vector set from RDB may lead to out-of-bounds access
- Vector Sets: use-after-free when
VREMmutates the HNSW graph while backgroundVSIMthreads are still running - Vector Sets: a negative
hnsw_search()return was treated as a huge unsigned count, reading past the end of the result arrays - TLS client certificate authentication bypass: a Common Name containing an embedded NUL byte was truncated, allowing a client to authenticate as another (possibly privileged) ACL user
- #15594 Use-after-free in the blocked-client list when reprocessing a command evicts another client blocked on the same key
8.8.2
Update urgency: SECURITY: There are security fixes in the release.
Security fixes
- (CVE-2026-62356) Miscalculated buffer size in
CMSketchRDB loading may lead to heap OOB write - Out-of-bounds access in TopK heap cleanup path (MOD-15410)
- Use-after-free in the TLS pending-data list when a command closes another pending connection
- #15478 ACL key permission bypass in
SORT,GEORADIUS/GEORADIUSBYMEMBERandXREAD/XREADGROUP: the keys validated by ACL could differ from the keys the command actually accesses - A malicious RDB payload with an out-of-range
SLOT_INFOslot id causes memory corruption during RDB loading, which may lead to Remote Code Execution - Vector Sets: missing node level validation when loading a vector set from RDB may lead to out-of-bounds access
- Vector Sets: use-after-free when
VREMmutates the HNSW graph while backgroundVSIMthreads are still running - Vector Sets: a negative
hnsw_search()return was treated as a huge unsigned count, reading past the end of the result arrays - TLS client certificate authentication bypass: a Common Name containing an embedded NUL byte was truncated, allowing a client to authenticate as another (possibly privileged) ACL user
- #15594 Use-after-free in the blocked-client list when reprocessing a command evicts another client blocked on the same key
8.6.6
Update urgency: SECURITY: There are security fixes in the release.
Security fixes
- (CVE-2026-62356) Miscalculated buffer size in
CMSketchRDB loading may lead to heap OOB write - Out-of-bounds access in TopK heap cleanup path (MOD-15410)
- Use-after-free in the TLS pending-data list when a command closes another pending connection
- #15478 ACL key permission bypass in
SORT,GEORADIUS/GEORADIUSBYMEMBERandXREAD/XREADGROUP: the keys validated by ACL could differ from the keys the command actually accesses - A malicious RDB payload with an out-of-range
SLOT_INFOslot id causes memory corruption during RDB loading, which may lead to Remote Code Execution - Vector Sets: missing node level validation when loading a vector set from RDB may lead to out-of-bounds access
- Vector Sets: use-after-free when
VREMmutates the HNSW graph while backgroundVSIMthreads are still running - Vector Sets: a negative
hnsw_search()return was treated as a huge unsigned count, reading past the end of the result arrays - TLS client certificate authentication bypass: a Common Name containing an embedded NUL byte was truncated, allowing a client to authenticate as another (possibly privileged) ACL user
- #15594 Use-after-free in the blocked-client list when reprocessing a command evicts another client blocked on the same key
8.4.6
Update urgency: SECURITY: There are security fixes in the release.
Security fixes
- (CVE-2026-62356) Miscalculated buffer size in
CMSketchRDB loading may lead to heap OOB write - Out-of-bounds access in TopK heap cleanup path (MOD-15410)
- Use-after-free in the TLS pending-data list when a command closes another pending connection
- #15478 ACL key permission bypass in
SORT,GEORADIUS/GEORADIUSBYMEMBERandXREAD/XREADGROUP: the keys validated by ACL could differ from the keys the command actually accesses - #14847 Out-of-bounds
argvaccess during key extraction when checking ACL permissions of a KEYNUM keyspec command (e.g.EVAL) with wrong arity - A malicious RDB payload with an out-of-range
SLOT_INFOslot id causes memory corruption during RDB loading, which may lead to Remote Code Execution - Vector Sets: missing node level validation when loading a vector set from RDB may lead to out-of-bounds access
- Vector Sets: use-after-free when
VREMmutates the HNSW graph while backgroundVSIMthreads are still running - Vector Sets: a negative
hnsw_search()return was treated as a huge unsigned count, reading past the end of the result arrays - #15594 Use-after-free in the blocked-client list when reprocessing a command evicts another client blocked on the same key
8.2.9
Security fixes
- (CVE-2026-62356) Miscalculated buffer size in
CMSketchRDB loading may lead to heap OOB write - Out-of-bounds access in TopK heap cleanup path (MOD-15410)
- Use-after-free in the TLS pending-data list when a command closes another pending connection
- #15478 ACL key permission bypass in
SORT,GEORADIUS/GEORADIUSBYMEMBERandXREAD/XREADGROUP: the keys validated by ACL could differ from the keys the command actually accesses - #14847 Out-of-bounds
argvaccess during key extraction when checking ACL permissions of a KEYNUM keyspec command (e.g.EVAL) with wrong arity - A malicious RDB payload with an out-of-range
SLOT_INFOslot id causes memory corruption during RDB loading, which may lead to Remote Code Execution - Vector Sets: missing node level validation when loading a vector set from RDB may lead to out-of-bounds access
- Vector Sets: use-after-free when
VREMmutates the HNSW graph while backgroundVSIMthreads are still running - Vector Sets: a negative
hnsw_search()return was treated as a huge unsigned count, reading past the end of the result arrays - #15594 Use-after-free in the blocked-client list when reprocessing a command evicts another client blocked on the same key
8.10.0
This is the General Availability release of Redis 8.10 in Redis Open Source.
Major changes compared to 8.8
- Compact hashes - a new hash encoding that reduces memory usage by storing hash field names just once for keys that share a schema
- New command:
HIMPORT- high-throughput compact hash bulk insertion - TLS peer certificate-based server-to-server authentication
- New commands:
LMOVEM,BLMOVEM- move multiple elements between lists - New command:
SUNIONCARD- get the cardinality of the union of multiple sets - New command:
SDIFFCARD- get the cardinality of the difference between sets - New command:
BACKUP- node-side implementation for backup and restore based on multi-part AOF (MP-AOF) XREAD,XREADGROUP- newMAXCOUNTandMAXSIZEarguments to cap the cumulative reply entries and size- New command:
FT.ALIASLIST- get all aliases for the index - Stemmer support for Malay and Tagalog languages
- JSONPath extensions
- New commands:
TS.NRANGE,TS.NREVRANGE- Query a range across multiple time series; group results by timestamp - New command:
TS.READ- optionally blocking read - New command:
TS.QUERYLABELS- Get a list of labels and label-values - New command:
TS.MRANGE,TS.MREVRANGE- newEXCLUDEEMPTYargument to exclude series with no reported samples - Performance improvements
Binary distributions
- Alpine and Debian Docker images - https://hub.docker.com/_/redis
- Install using snap - see https://github.com/redis/redis-snap
- Install using brew - see https://github.com/redis/homebrew-redis
- Install using RPM - see https://github.com/redis/redis-rpm
- Install using Debian APT - see https://github.com/redis/redis-debian
Operating systems we test Redis 8.10 on
- Ubuntu 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat), 26.04 (Resolute Raccoon)
- Rocky Linux 8.10, 9.7, 10.1
- AlmaLinux 8.10, 9.7, 10.1
- Debian 12.13 (Bookworm), Debian 13.4 (Trixie)
- Alpine 3.23
- macOS 14.8.4 (Sonoma), 15.7.4 (Sequoia), 26.3 (Tahoe) - for both Intel and ARM
Bug fixes (compared to 8.10-RC2)
- #15513 Prevented a division-by-zero error when active defragmentation thresholds are configured with equal or reversed value
- #15453 Clients blocked on
BLPOP,BLMOVE, orBLMOVEMcould remain blocked afterSORTwithSTOREreplaced the target key with a list - #15499 Memory usage reported for compressed replication clients could be lower than the actual memory consumed
- #15518 notify modules when node's own ip/port changes
- #15539 Loading an AOF file with an RDB preamble could fail when active defragmentation was enabled
- RediSearch/RediSearch#10528 Crash in the numeric range tree when background garbage collection encounters an empty leaf during active indexing on a numeric field. (MOD-16877)
- RediSearch/RediSearch#10605 FT.CREATE and FT.ALTER now reject an empty string as a field name, preventing a crash loop in the fork-GC on indexes with an empty TAG field. (MOD-17034)
- RediSearch/RediSearch#10488 FT.INFO reports a negative num_records after garbage collection on indexes that include an INDEXMISSING field. (MOD-16940)
- RediSearch/RediSearch#10568 Cluster FT.AGGREGATE fails with SEARCH_FIELD_DUP when a GROUPBY contains multiple REDUCE COLLECT calls over the same field differing only in option-keyword casing. (MOD-16365)
- RediSearch/RediSearch#10605 FT.CREATE and FT.ALTER now return an error when a field name is an empty string; previously such schemas were accepted silently. (MOD-17034)
- RediSearch/RediSearch#10522 coord_total_query_warnings_timeout double-counts timeout warnings for FT.SEARCH queries that use a hybrid (vector + filter) execution path. (MOD-15973)
8.8.1
SECURITY: There is a security fix in the release.
Security fixes
- RedisBloom/RedisBloom#1044 Crafted RESTORE payloads in RedisBloom and TDigest may trigger out-of-bounds writes, potentially leading to remote code execution
8.6.5
SECURITY: There are security fixes in the release.
Security fixes
- A crafted stream RESTORE payload can make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution
- RedisBloom/RedisBloom#1046 Crafted RESTORE payloads in RedisBloom and TDigest may trigger out-of-bounds writes, potentially leading to remote code execution
Bug fixes
- RedisBloom/RedisBloom#1021 Replicate
CF.LOADCHUNKdata chunks to prevent silent Cuckoo Filter data loss on failover
8.4.5
SECURITY: There are security fixes in the release.
Security fixes
- A crafted stream RESTORE payload can make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution
- RedisBloom/RedisBloom#1039 Crafted RESTORE payloads in RedisBloom and TDigest may trigger out-of-bounds writes, potentially leading to remote code execution
Bug fixes
- RedisBloom/RedisBloom#1020 Replicate
CF.LOADCHUNKdata chunks to prevent silent Cuckoo Filter data loss on failover
8.2.8
SECURITY: There are security fixes in the release.
Security fixes
- A crafted stream RESTORE payload can make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution
- RedisBloom/RedisBloom#1041 Crafted RESTORE payloads in RedisBloom and TDigest may trigger out-of-bounds writes, potentially leading to remote code execution
Bug fixes
- RedisBloom/RedisBloom#1019 Replicate
CF.LOADCHUNKdata chunks to prevent silent Cuckoo Filter data loss on failover