13.2.5
Download page What's new highlights
- Security: Fix CVE-2026-100105
- Security: Fix CVE-2026-103506
- Security: Fix CVE-2026-88858
- Security: Fix CVE-2026-88967
- Git Sync: Ignore hidden paths in repository scans and diffs #135028, @ferruvich
- Provisioning: Default save from a branch preview to the previewed branch #135174, @Clarity-89
- Provisioning: Never replace the repository root folder during incremental sync #135463, @ferruvich
- Plugins: Don't report loaded plugins as not registered when a request times out #135665, @leventebalogh
- Provisioning: Fix PR dashboard previews when served from a sub-path #135559, @gustaff-weldon
13.0.12
Download page What's new highlights
- Security: Fix CVE-2026-100105
- Security: Fix CVE-2026-88858
- Security: Fix CVE-2026-88967
- Provisioning: Default save from a branch preview to the previewed branch #135173, @Clarity-89
13.1.9
Download page What's new highlights
- Security: Fix CVE-2026-100105
- Security: Fix CVE-2026-88858
- Security: Fix CVE-2026-88967
- Provisioning: Default save from a branch preview to the previewed branch #135175, @Clarity-89
12.4.14
Download page What's new highlights
- Security: Fix CVE-2026-100105
- Security: Fix CVE-2026-88858
- Security: Fix CVE-2026-88967
13.3.0
Download page What's new highlights
- Security: Fix CVE-2026-100105
- Security: Fix CVE-2026-13719
- Security: Fix CVE-2026-13720
- Security: Fix CVE-2026-15577
- Security: Fix CVE-2026-33374
- Security: Fix CVE-2026-81841
- Security: Fix CVE-2026-88858
- Security: Fix CVE-2026-88967
- Security: Fix CVE-2026-93294
- Security: Fix CVE-2026-95502
- Access control: reject global role creation in single-org mode (Enterprise)
- Alerting: Add AccessControlAction entries for inhibition rules #130977, @rodrigopk
- Alerting: Add notifications API boundary module #134537, @rodrigopk
- Alerting: Add the Config API data layer for external Alertmanager auto-sync #129478, @rodrigopk
- Alerting: Allow drag and drop for yaml file as import source for import wizard #132705, @rodrigopk
- Alerting: Cleanup promote staged config code #130974, @rodrigopk
- Alerting: Disable datasource picker while an import is staged #133181, @rodrigopk
- Alerting: Make stage default import method in GMA import wizard #130634, @rodrigopk
- Alerting: Make the Import wizard review step preview look clickable #132711, @rodrigopk
- Alerting: Migrate the Import-to-GMA wizard's auto-sync integration #131523, @rodrigopk
- Alerting: Migrate the auto-sync settings hook and panel onto the Config API #131521, @rodrigopk
- Alerting: Promote AlertRule, RecordingRule and RuleSequence to v1beta1 #134883, @moustafab
- Alerting: Promote a staged import configuration #130327, @rodrigopk
- Alerting: Read staged config origin from the managed_by field #130787, @rodrigopk
- Alerting: Redact secrets from the Import-to-GMA preview modal #132827, @rodrigopk
- Alerting: Refactor useIsAutoSyncActive onto the shared Config-API helpers #131520, @rodrigopk
- Alerting: Remove import method from import to GMA wizard #130609, @rodrigopk
- Alerting: Retire the legacy admin_config auto-sync path #131524, @rodrigopk
- Alerting: Show Auto-sync support in the import wizard picker #131084, @rodrigopk
- Alerting: Support Mimir alertmanager_config files in Import to GMA wizard #135637, @rodrigopk
- Alerting: Surface external Alertmanager sync health in the settings UI #131527, @rodrigopk
- Alerting: stop auto-sync from force-skipping the Rules step in the GMA import wizard #131072, @rodrigopk
- Auth: Bound OAuth token refresh lock waits by time instead of attempts #133929, @cinaglia
- Canvas: Load the standalone plugin by default #134873, @gtk-grafana
- Chore: Upgrade to k8s v0.37.0 (and grafana-app-sdk v0.60.0) #132571, @stevesg
- Dashboard: Adds new a subtitle option for panel descriptions #129164, @torkelo
- Dashboard: Fall back when collection deletion is unsupported #128259, @bestend
- Dashboards: Add $__namespace global variable #132167, @ivanortegaalba
- Dashboards: Allow
Add variable +btn to add filters, links and annos as well #130841, @mdvictor - Dashboards: Hide links to deleted folders in Recently Deleted #134469, @Clarity-89
- Dashboards: Improve Recently Deleted performance with server-side search #134126, @pstibrany
- Dashboards: Make the auto grid to be default #130749, @bfmatei
- Dashboards: Show Git Sync badges in folder search #132790, @Clarity-89
- Faro: add support for
trackResources#130792, @ashharrison90 - FieldOverrides: Add ShowIfOverride to field config options #132419, @gtk-grafana
- Frontend: add subresource integrity #131596, @jackw
- Git Sync: Clarify repository links for pure Git #134238, @ferruvich
- Git Sync: Ignore hidden paths in repository scans and diffs #134731, @ferruvich
- GrafanaBootData: Restrict config.datasources usage via lint rule #130661, @mckn
- Heatmap: Keep exemplar marker size consistent across displays #134072, @fastfrwrd
- Home: Send the traces setup CTA to the OpenTelemetry onboarding guide #135135, @Clarity-89
- Homepage: Add an On call schedules tab with your shifts and who's on call #134747, @Clarity-89
- Homepage: Let the Synthetic Monitoring card ignore checks, targets, and probes #134217, @Clarity-89
- Homepage: Let the metrics card exclude hosts and filesystems from its disk alert #133472, @Clarity-89
- Homepage: Move card filters to a footer dropdown and show page kinds as icons #135851, @Clarity-89
- Homepage: Replace the Recent tab with Recent activity #134633, @Clarity-89
- Homepage: Stop the homepage from jumping while it loads #135321, @Clarity-89
- Log Details Sidebar: Change default action to replace the current log instead of opening a new tab #133129, @matyax
- Log Details: Surface errors in logs and update links styles #134427, @matyax
- Logs Table: Disable hover overflow by default #132882, @matyax
- Logs: Invert the orientation of the arrow in the Logs Table and Logs Panel #131156, @matyax
- Packaging: Remove bash dependency from alpine Docker image #132643, @TheoBrigitte
- PanelEdit: Conditional field config display & edit context #132398, @gtk-grafana
- PanelOptions: Add context options to overrides #132414, @gtk-grafana
- Plugins: Avoid to delete RBAC roles when upgrading #134143, @andresmgot
- Plugins: Expose OpenFeature provider discovery to backend plugins #129735, @adamyeats
- Plugins: Forward SSL certificate environment variables #131848, @osmocomet
- Plugins: Show the correct warning when grafana.com is unreachable #132028, @lazerg
- Provisioning: Add generic git OAuth app connections #134186, @amalavet
- Provisioning: Add link back to the original dashboard in preview banner #129037, @MissingRoberto
- Provisioning: Allow permission updates on provisioned folders #134725, @ferruvich
- Provisioning: Allow resource previews in unsynced folders #133250, @ferruvich
- Provisioning: Always interpret folder metadata in resources and sync #134726, @ferruvich
- Provisioning: Always protect folder metadata from direct file writes #135038, @ferruvich
- Provisioning: Always use folder metadata in Git Sync #134355, @Clarity-89
- Provisioning: Default save from a branch preview to the previewed branch #135136, @Clarity-89
- Provisioning: GitHub-style doc tabs for folder README #129073, @MissingRoberto
- Provisioning: Handle repository build timeouts and branch outages #135072, @ferruvich
- Provisioning: Keep folder when removing _folder.json leaves its UID unchanged #135574, @ferruvich
- Provisioning: Link README items to Grafana pages when viewed in Grafana #128455, @MissingRoberto
- Provisioning: Make backend user attribution unconditional #134709, @ferruvich
- Provisioning: Never replace the repository root folder during incremental sync #135397, @ferruvich
- Provisioning: Reject invalid resource names before API calls #133666, @ferruvich
- Provisioning: Respect Git Sync polling intervals after unchanged refs #134380, @ferruvich
- Provisioning: Show last checked time in Pull status #134476, @ferruvich
- Provisioning: Skip previews for pull requests from forks #132522, @ferruvich
- Provisioning: Stop PR previews when refs disappear #132547, @ferruvich
- Provisioning: Style branch/target-branch as GitHub-like pills in preview banner #131133, @MissingRoberto
- Provisioning: Support generic git OAuth connections in the UI #134187, @amalavet
- Provisioning: Support legacy paths and diagnose missing source annotations #133225, @ferruvich
- Provisioning: Surface the finalizer blocking a stuck repository deletion #133241, @MissingRoberto
- Provisioning: Treat manager-kind conflicts as warnings #132364, @ferruvich
- Provisioning: Use resource.action for preview banner title accuracy #131134, @MissingRoberto
- Provisioning: recover from a deleted PR branch (pre-flight + save to new branch) #128977, @MissingRoberto
- Provisioning: render mermaid diagrams in folder README #129096, @MissingRoberto
- Provisioning: tolerate quota lookup failures for existing repositories #131703, @ferruvich
- QueryEditor: Add extension point to the top toolbar #132289, @aocenas
- RBAC: Allow removing unowned permissions through access-control APIs (Enterprise)
- RBAC: Document APIs allow removing unowned permissions through access-control APIs #132518, @gamab
- Replace subtitle switch UI string #132965, @imatwawana
- Reports: say in the report when a variable value no longer exists (Enterprise)
- Sandbox: Config flag deprecation message #135329, @jesdavpet
- Sandbox: Show deprecation warning in UI tooltip (Enterprise)
- Standard options: Add Ordinal unit. #130091, @simonprickett
- Table: Calculate column widths independently of scrollbar visibility #134337, @fastfrwrd
- Table: Prevent initial column width jump with vertical scrollbars #133615, @fastfrwrd
- TimeRangePicker: Default isOnCanvas to true #135833, @torkelo
- TopNav: Logo should not shrink #131170, @torkelo
- Trace View: Open Logs link in a new tab (Drilldown) or in split view (Explore) #132987, @matyax
- TraceView: Add Go to span on the header error banner #132550, @joey-grafana
- TraceView: Add a trace banner for error and warning spans #132250, @joey-grafana
- TraceView: Expand attribute plugin cross-sell promos #131472, @joey-grafana
- TraceView: Open the banner span from Go to span and surface exception #133122, @joey-grafana
- TraceView: Use design system tokens in the header, minimap and timeline #133339, @joey-grafana
- TraceView: Use design system tokens in waterfall rows and span details #133434, @joey-grafana
- Traces to logs: Extend support, and discover trace and span related logs from #130515, @matyax
- Transformations: Allow setting static refIDs per transformation #131458, @Develer
- Transformations: Resolve variables in the classic transformation editor #135569, @Develer
- UI: Luxon on by default #134865, @fastfrwrd
- Unified storage: Enable automatic cleanup of deleted resources by default #133330, @pstibrany
- alerting: Remove method step from import to GMA wizard #130616, @rodrigopk
- Alerting: Fix alerts going to the built-in Alertmanager after startup for external-only orgs #134481, @gillesdemey
- Alerting: Fix instance rows vanishing at coarse query steps in Triage #133516, @rodrigopk
- Alerting: Fix notification policy drop and query drift in rule saves #131645, @rodrigopk
- Alerting: Fix rule groups missing from a folder until "Show more" is clicked #131078, @JacobsonMT
- Alerting: Fix stale dry-run validation and YAML errors in the Import wizard #132707, @rodrigopk
- Alerting: Fix useAutoSyncConfiguration's queries behind Org Admin + feature toggle #130627, @rodrigopk
- Alerting: fix GetManagedRoute returning imported route for unrelated names #132563, @JacobsonMT
- Alerting: reject managed route names with leading/trailing whitespace #132566, @JacobsonMT
- Dashboard: Preserve panel subtitle in V2 save model #133723, @adi-IL
- Dashboards: Fix Classic model returning v2 JSON when saving a provisioned dashboard #131718, @ivanortegaalba
- Dashboards: Fix adhoc and groupby variable datasource on UI import #131817, @ivanortegaalba
- Dashboards: Fix browse crash and hangs when a dashboard shares its folder's UID #132634, @Clarity-89
- Dashboards: Fix edit state props when swapping dashboard state in place #132001, @ifrost
- Dashboards: Fix missing deletion dates in Recently Deleted #133734, @pstibrany
- Dashboards: Fix query variable refresh reset to onDashboardLoad on v2 UI import #131837, @ivanortegaalba
- Dashboards: Keep tags set on a new dashboard when saving it #131459, @ivanortegaalba
- Dashboards: Keep variable values and time settings set by an applied spec instead of reverting them to the URL #134200, @ivanortegaalba
- Dashboards: Preserve query variable refresh setting on v2 dashboard import #132007, @Sergej-Vlasov
- Dashboards: Show values preview for data source variables in the edit pane #131736, @ivanortegaalba
- Library panels: Fix skeleton alignment #133965, @ashharrison90
- Navigation: Hide NetworkError when switching organization #131955, @AshrithaSB
- Packaging: Fix issue with bundled plugins not being moved properly #131033, @kminehart
- PanelEditor: Fix options pane not resizable beyond the preview's content width #131581, @ivanortegaalba
- Plugins: Don't report loaded plugins as not registered when a request times out #135591, @leventebalogh
- Provisioning: Fix PR dashboard previews when served from a sub-path #132569, @gustaff-weldon
- Provisioning: Fix folder cleanup and hidden directory scans #135050, @ferruvich
- Provisioning: Fix folder rename UID collision during full sync #130401, @ferruvich
- Provisioning: Fix sync step flicker in Git Sync wizard #134108, @Clarity-89
- Reporting: Fix race condition with repeat panels on the /d-render/ page #128536, @mmandrus
- SQL Expressions: Read enum fields as their text #135225, @nicwestvold
- SQL Expressions: Rename label columns that clash with generated column names #134869, @nicwestvold
- Security: Fix CVE-2026-17183 #131061, @github-actions[bot]
- Table: Fix nested apply-to-row coloring to use the nested frame's own fields #129426, @fastfrwrd
- Table: Fix the height a wrapped header row reserves #132230, @fastfrwrd
- Table: fix JSON cell indentation, styling, and hover reveal #130452, @fastfrwrd
- Plugins marketplace: rename config.ini section from marketplace to plugins_marketplace #132172, @xnyo
- ConfirmModal: Ensure focus correctly traps when invoked from a dropdown menu #132764, @ashharrison90
- Datasources: Remove deprecated
isDefaultfromDataSourceInstanceListItem#133886, @leventebalogh - GrafanaUI: Fix focus ring appearance #132808, @ashharrison90
- MultiCombobox: Ensure height is consistent between empty/filled states #131255, @ashharrison90
- Runtime: Stabilize async data source APIs #134390, @leventebalogh
- Runtime: Stabilize plugin settings APIs #134723, @leventebalogh
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