9.0.7
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
- GHSA-f4q9-j22m-xqq9: Fix a heap buffer overflow in cluster Pub/Sub message construction that could allow an authenticated client to potentially execute arbitrary code by publishing an oversized message by @roshkhatri (#5030)
- Fix stream commands that mutate consumer-group or PEL state (
XGROUP,XSETID,XREADGROUP,XACK,XCLAIM,XAUTOCLAIM) not triggeringWATCHand client-side tracking invalidation by @Tarte12 (#3459) - Reject module write commands while the server is paused for writes, preventing a crash from module timer callbacks during
CLIENT PAUSE WRITEorCLUSTER FAILOVERby @smkher (#3645) - Fix a server abort on a RESTORE payload declaring a string length that overflows the allocation size; such payloads are now rejected as bad data by @enjoy-binbin (#4733)
- Fix ZINTER/ZINTERSTORE returning input-order-dependent scores when a weighted term is 0*inf; a NaN weighted score now counts as 0, matching ZUNION by @leomurillo (#4997)
- Correct
ValkeyModule_FreeModuleUser,ValkeyModule_ACLAddLogEntryandValkeyModule_ACLAddLogEntryByUserNamedeclarations to return int as implemented, fixing undefined behavior on targets with strict call signature checks by @rainsupreme (#4676) - valkey-check-aof now recognizes RDB base files with the
VALKEYsignature instead of misreporting a valid multipart AOF as invalid by @sarthakaggarwal97 (#4739) - Fix a huge memory allocation when a command such as COMMAND GETKEYS EVAL declares a far larger key count than the arguments provided by @murphyjacob4 (#3598)
- Reject relative expire times in
SET/GETEX,RESTORE, andValkeyModule_SetExpirethat overflow when added to the current time, preventing server aborts from negative expires by @madolson (#4880) HDEL,HGETDEL,HPERSIST, andHEXPIREno longer propagate fields they treat as expired, preventing replica and AOF-reload divergence by @xdk-amz (#4772)- Fix a server crash when loading an ACL file containing a selector with an unmatched parenthesis by @magic-peach (#4214)
COPYof a hash now includes expired-but-unreaped fields so their deletion is propagated and replicas stay in sync by @pirate329 (#4939)- Sorted set range commands with a negative
LIMIToffset now return an empty result instead of a spurious element on btree-encoded keys by @xiaocj (#4637) - Fix atomic slot migration not replicating evictions on the import target, which let replicas grow far past
maxmemoryby @shanezx-sc (#4920) - Redact error text in server logs when
hide-user-data-from-logis enabled, so command arguments no longer leak into logs by @zackcam (#4815) - Fix
HSETEXandHGETEXfailing to parse their arguments when the key is namedfieldsby @sebxt (#4945) - Fix cluster config saving to avoid publishing truncated
nodes.conffiles, losing the startup lock after the first save, and failing every save on SMB filesystems such as Azure Files; the lock now lives on a separatenodes.conf.lockfile by @KewangZhili (#4489) - Fix atomic slot migration with
cluster-databases> 1 applying writes made during the snapshot to the wrong database on the target by @pirate329 (#4952) - Fix
LSETon 64-bit builds silently modifying the wrong element for out-of-range indexes instead of returning an index out of range error by @charsyam (#4823)
Full Changelog: https://github.com/valkey-io/valkey/compare/9.0.6...9.0.7
8.0.12
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
- GHSA-f4q9-j22m-xqq9: Fix a heap buffer overflow in cluster Pub/Sub message construction that could allow an authenticated client to potentially execute arbitrary code by publishing an oversized message by @roshkhatri (#5030)
- Fix stream commands that mutate consumer-group or PEL state (
XGROUP,XSETID,XREADGROUP,XACK,XCLAIM,XAUTOCLAIM) not triggeringWATCHand client-side tracking invalidation by @Tarte12 (#3459) - Fix a server abort on a RESTORE payload declaring a string length that overflows the allocation size; such payloads are now rejected as bad data by @enjoy-binbin (#4733)
- Reject module write commands while the server is paused for writes, preventing a crash from module timer callbacks during
CLIENT PAUSE WRITEorCLUSTER FAILOVERby @smkher (#3645) - Fix ZINTER/ZINTERSTORE returning input-order-dependent scores when a weighted term is 0*inf; a NaN weighted score now counts as 0, matching ZUNION by @leomurillo (#4997)
- Correct
ValkeyModule_FreeModuleUser,ValkeyModule_ACLAddLogEntryandValkeyModule_ACLAddLogEntryByUserNamedeclarations to return int as implemented, fixing undefined behavior on targets with strict call signature checks by @rainsupreme (#4676) - Fix valkey-benchmark spinning on would-block writes, which could starve reply processing and the
--durationtimer by @thweetkomputer (#4567) - Fix a huge memory allocation when a command such as COMMAND GETKEYS EVAL declares a far larger key count than the arguments provided by @murphyjacob4 (#3598)
- Reject relative expire times in
SET/GETEX,RESTORE, andValkeyModule_SetExpirethat overflow when added to the current time, preventing server aborts from negative expires by @madolson (#4880) - Fix a server crash when loading an ACL file containing a selector with an unmatched parenthesis by @magic-peach (#4214)
- Sorted set range commands with a negative
LIMIToffset now return an empty result instead of a spurious element on btree-encoded keys by @xiaocj (#4637) - Redact error text in server logs when
hide-user-data-from-logis enabled, so command arguments no longer leak into logs by @zackcam (#4815) - Fix cluster config saving to avoid publishing truncated
nodes.conffiles, losing the startup lock after the first save, and failing every save on SMB filesystems such as Azure Files; the lock now lives on a separatenodes.conf.lockfile by @KewangZhili (#4489) - Fix
LSETon 64-bit builds silently modifying the wrong element for out-of-range indexes instead of returning an index out of range error by @charsyam (#4823)
Full Changelog: https://github.com/valkey-io/valkey/compare/8.0.11...8.0.12
8.1.11
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
- GHSA-f4q9-j22m-xqq9: Fix a heap buffer overflow in cluster Pub/Sub message construction that could allow an authenticated client to potentially execute arbitrary code by publishing an oversized message by @roshkhatri (#5030)
- Fix stream commands that mutate consumer-group or PEL state (
XGROUP,XSETID,XREADGROUP,XACK,XCLAIM,XAUTOCLAIM) not triggeringWATCHand client-side tracking invalidation by @Tarte12 (#3459) - Fix a server crash when module timer callbacks or thread-safe contexts attempt writes while writes are paused by
CLIENT PAUSE WRITEorCLUSTER FAILOVER; such module writes are now rejected by @smkher (#3645) - Fix a server abort on a RESTORE payload declaring a string length that overflows the allocation size; such payloads are now rejected as bad data by @enjoy-binbin (#4733)
- Fix ZINTER/ZINTERSTORE returning input-order-dependent scores when a weighted term is 0*inf; a NaN weighted score now counts as 0, matching ZUNION by @leomurillo (#4997)
- Correct
ValkeyModule_FreeModuleUser,ValkeyModule_ACLAddLogEntryandValkeyModule_ACLAddLogEntryByUserNamedeclarations to return int as implemented, fixing undefined behavior on targets with strict call signature checks by @rainsupreme (#4676) - Fix a huge memory allocation when a command such as COMMAND GETKEYS EVAL declares a far larger key count than the arguments provided by @murphyjacob4 (#3598)
- Reject relative expire times in
SET/GETEX,RESTORE, and the moduleSetExpireAPI that overflow when the current time is added, preventing negative expires that abort the server by @madolson (#4880) - Fix a server crash when loading an ACL file containing a selector with an unmatched parenthesis by @magic-peach (#4214)
- Fix sorted set range commands with a negative LIMIT offset returning a wrong element on btree-encoded keys; negative offsets now return an empty result in both encodings by @xiaocj (#4637)
- Redact error reply text in server logs when
hide-user-data-from-logis enabled, so keys and values no longer leak into logs via error messages by @zackcam (#4815) - Fix cluster config saving to avoid publishing truncated
nodes.conffiles, losing the startup lock after the first save, and failing every save on SMB filesystems such as Azure Files; the lock now lives on a separatenodes.conf.lockfile by @KewangZhili (#4489) - Fix
LSETon 64-bit builds silently modifying the wrong element for out-of-range indexes instead of returning an index out of range error by @charsyam (#4823)
Full Changelog: https://github.com/valkey-io/valkey/compare/8.1.10...8.1.11
9.1.3
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
- GHSA-f4q9-j22m-xqq9: Fix a heap buffer overflow in cluster Pub/Sub message construction that could allow an authenticated client to potentially execute arbitrary code by publishing an oversized message by @roshkhatri (#5030)
- Fix stream commands that mutate consumer-group or PEL state (
XGROUP,XSETID,XREADGROUP,XACK,XCLAIM,XAUTOCLAIM) not triggeringWATCHand client-side tracking invalidation by @Tarte12 (#3459) - Reject module write commands while the server is paused for writes, preventing a crash from module timer callbacks during
CLIENT PAUSE WRITEorCLUSTER FAILOVERby @smkher (#3645) - Fix event loop busy-spinning on virtual machines by not using raw TSC for the monotonic clock when the kernel clocksource is not tsc by @quanyeyang (#4707)
- Fix a crash in
ValkeyModule_HashHasStringRefon a missing or expired field and correct wrong return values in the hash stringRef module APIs by @ShubhamTaple (#4504) - Fix a server abort on a RESTORE payload declaring a string length that overflows the allocation size; such payloads are now rejected as bad data by @enjoy-binbin (#4733)
- Fix ZINTER/ZINTERSTORE returning input-order-dependent scores when a weighted term is 0*inf; a NaN weighted score now counts as 0, matching ZUNION by @leomurillo (#4997)
- Clear a stale primary-failure gossip flag on replicas so later failovers don't incorrectly skip the election delay by @charsyam (#4533)
- Correct
ValkeyModule_FreeModuleUser,ValkeyModule_ACLAddLogEntryandValkeyModule_ACLAddLogEntryByUserNamedeclarations to return int as implemented, fixing undefined behavior on targets with strict call signature checks by @rainsupreme (#4676) - valkey-check-aof now recognizes RDB base files with the
VALKEYsignature instead of misreporting a valid multipart AOF as invalid by @sarthakaggarwal97 (#4739) - Fix module commands that access undeclared keys in other slots reading or writing the wrong slot in cluster mode, and aborting in debug builds by @patrickswedish (#4424)
- Reject relative expire times in
SET/GETEX,RESTORE, andValkeyModule_SetExpirethat overflow when added to the current time, preventing server aborts from negative expires by @madolson (#4880) HDEL,HGETDEL,HPERSIST, andHEXPIREno longer propagate fields they treat as expired, preventing replica and AOF-reload divergence by @xdk-amz (#4772)- Fix a server crash when loading an ACL file containing a selector with an unmatched parenthesis by @magic-peach (#4214)
- Fix a segfault on Alpine/musl when Lua is built as a module, caused by a symbol clash on an internal clock function by @mohammedgqudah (#4270)
COPYof a hash now includes expired-but-unreaped fields so their deletion is propagated and replicas stay in sync by @pirate329 (#4939)- Restore acceptance of hexadecimal float sorted set scores (such as
0x10), keeping replication and AOF replay compatible with Valkey 9.0 by @quanyeyang (#4875) - Sorted set range commands with a negative
LIMIToffset now return an empty result instead of a spurious element on btree-encoded keys by @xiaocj (#4637) - Fix listpack encoding incompatibility that caused RDB load and replication failures for entries of certain lengths between 9.0 and 9.1.x by @jjuleslasarte (#4819)
- Fix atomic slot migration not replicating evictions on the import target, which let replicas grow far past
maxmemoryby @shanezx-sc (#4920) - Redact error text in server logs when
hide-user-data-from-logis enabled, so command arguments no longer leak into logs by @zackcam (#4815) - Fix
HSETEXandHGETEXfailing to parse their arguments when the key is namedfieldsby @sebxt (#4945) - Fix cluster config saving to avoid publishing truncated
nodes.conffiles, losing the startup lock after the first save, and failing every save on SMB filesystems such as Azure Files; the lock now lives on a separatenodes.conf.lockfile by @KewangZhili (#4489) - Fix
LSETon 64-bit builds silently modifying the wrong element for out-of-range indexes instead of returning an index out of range error by @charsyam (#4823) - Fix atomic slot migration with
cluster-databases> 1 applying writes made during the snapshot to the wrong database on the target by @pirate329 (#4952)
Full Changelog: https://github.com/valkey-io/valkey/compare/9.1.2...9.1.3
7.2.15
Upgrade urgency SECURITY: This release includes security fixes we recommend you apply as soon as possible.
- GHSA-f4q9-j22m-xqq9: Fix a heap buffer overflow in cluster Pub/Sub message construction that could allow an authenticated client to crash the server or potentially execute arbitrary code by publishing an oversized message by @roshkhatri (#5030)
- Fix a double-free crash when a module timer callback stops its own timer with
ValkeyModule_StopTimerby @quanyeyang (#4211) - Truncate a partially written MULTI block from the AOF on short read, preventing loss of newer writes after a later restart by @chzhoo (#4342)
- Fix an ACL bypass where duplicate STORE/STOREDIST options let GEORADIUS write or delete keys outside the user's permitted patterns by @tjade273 (#3971)
- Fix a use-after-free crash when a module's cluster message type is received after the module is unloaded by @enjoy-binbin (#4360)
- Fix out-of-bounds access for cluster module message type 255, which is now a valid, dispatchable message type by @enjoy-binbin (#4410)
- AOF loading no longer performs ACL checks on replayed commands, preventing silent data loss when the default user is disabled by @lukepalmer (#3984)
- Listpacks are now always validated on RDB load and RESTORE, preventing deferred assertion crashes;
sanitize-dump-payloadand its ACL flags become no-ops by @jjuleslasarte (#3721) - Fix a client memory accounting leak on replicas that inflated the
mem_clients_normalINFO field after primary disconnections by @enjoy-binbin (#4395) - Fix stream commands that mutate consumer-group or PEL state (
XGROUP,XSETID,XREADGROUP,XACK,XCLAIM,XAUTOCLAIM) not triggeringWATCHand client-side tracking invalidation by @Tarte12 (#3459) - Fix a server abort on a RESTORE payload declaring a string length that overflows the allocation size; such payloads are now rejected as bad data by @enjoy-binbin (#4733)
- Fix ZINTER/ZINTERSTORE returning input-order-dependent scores when a weighted term is 0*inf; a NaN weighted score now counts as 0, matching ZUNION by @leomurillo (#4997)
- Harden stream validation on RDB load and RESTORE so crafted payloads can no longer crash the server on later commands by @madolson (#3922)
- Fix a use-after-free crash when serving clients blocked on the same key if one client is freed during processing by @quanyeyang (#4212)
- Fix a stack overflow crash in TLS connections when retrying a large write after a write failure by @murphyjacob4 (#4307)
- Fix a crash from forged cluster bus PUBLISH or MODULE packets declaring payload lengths that exceed the packet size by @tjade273 (#3972)
- Correct
ValkeyModule_FreeModuleUser,ValkeyModule_ACLAddLogEntryandValkeyModule_ACLAddLogEntryByUserNamedeclarations to return int as implemented, fixing undefined behavior on targets with strict call signature checks by @rainsupreme (#4676) - Fix valkey-benchmark spinning on would-block writes, which could starve reply processing and the
--durationtimer by @thweetkomputer (#4567) - Fix a huge memory allocation when a command such as COMMAND GETKEYS EVAL declares a far larger key count than the arguments provided by @murphyjacob4 (#3598)
- Reject stream payloads with mismatched live/deleted record counts, preventing XDEL from destroying unaccounted entries by @roshkhatri (#4381)
- Fix a server crash when loading an ACL file containing a selector with an unmatched parenthesis by @magic-peach (#4214)
- Fix cluster config saving to avoid publishing truncated
nodes.conffiles, losing the startup lock after the first save, and failing every save on SMB filesystems such as Azure Files; the lock now lives on a separatenodes.conf.lockfile by @KewangZhili (#4489) - Fix
LSETon 64-bit builds silently modifying the wrong element for out-of-range indexes instead of returning an index out of range error by @charsyam (#4823)
Full Changelog: https://github.com/valkey-io/valkey/compare/7.2.14...7.2.15