CVE-2026-82677
THREAT INTELLIGENCE REPORT
CVE-2026-82677 — Valkey Module Timer Subsystem Double Free
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Executive Summary
CVE-2026-82677 is a double-free vulnerability in Valkey 9.1.0, specifically within the Module Timer Subsystem of the in-process module infrastructure. The flaw resides in the moduleTimerHandler function of src/module.c and can be triggered remotely, though it requires high-privilege access (CVSS PR:H) and user interaction (UI:R), limiting the practical attack surface to authenticated administrators or applications executing module-timer management commands.
The vulnerability carries a low CVSS base score of 2.4 (AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:N/A:L), indicating minimal confidentiality or integrity impact, with only a limited availability impact. Despite the public disclosure of exploit techniques, no functional PoC or Nuclei template is currently available. Patch confidence is rated 0/4 — no authoritative patch evidence has been confirmed from vendor sources, making immediate mitigation strategies critical for affected deployments.
Technical Analysis
Vulnerability Class and Mechanism
The CVE describes a double-free condition (CWE-119 — Improper Restriction of Operations within the Bounds of a Memory Buffer) in Valkey 9.1.0. The affected component is the Module Timer Subsystem, which handles scheduling and execution of timers registered by dynamically loaded Valkey modules.
The vulnerable function is moduleTimerHandler, located in src/module.c. This function is the entry point for processing expired/pending module timers within the event loop. The double-free occurs when the same memory region (likely a timer callback context or scheduled-event structure) is freed twice during timer cleanup or re-scheduling operations.
Attack Surface
The attack is remotely initiable per the NVD description. This implies that the timer management interface is reachable over the network. However, the CVSS vector specifies:
- PR:H (High Privileges Required): The attacker must possess authenticated access to Valkey with administrative privileges (e.g.,
CONFIG SETor module-management permissions). - UI:R (User Interaction Required): A legitimate user (or automated process with user-equivalent privileges) must perform an action that triggers the vulnerable timer path — for example, scheduling, canceling, or expiring a module timer while concurrent operations race on the same timer object.
Code-Level Context (Inferred, Not Invented)
While the NVD description references only moduleTimerHandler and src/module.c, the general mechanism of a double-free in a timer subsystem typically involves:
- Reference-count mismanagement: A timer callback context is freed during callback execution while the event loop still holds a stale pointer to it.
- Race condition: Concurrent access to the same timer structure from multiple threads or re-entrant event-loop callbacks without proper locking.
- Error-path mishandling: Failure to nullify pointers after
free(), leading to a subsequent free on the already-released memory.
Because no patch has been confirmed applied (patch confidence 0/4), the exact trigger sequence remains unverified. The referenced patch name b349fe2821e3998534b1454c1b64a478daf8c6b7 is mentioned in the NVD description as the recommended fix, but it has not been confirmed present in any official release branch.
CVSS Rationale
- AV:N — Network: The module-timer interface is network-exposed (Valkey protocol on TCP port 6379 by default).
- AC:L — Low Attack Complexity: No special conditions beyond standard module-timer operations are needed.
- PR:H — High Privileges: Requires administrative/module-management privileges.
- UI:R — User Interaction: Requires a user to trigger the vulnerable timer lifecycle.
- S:U — Unchanged Scope: The compromise does not extend beyond the Valkey process.
- C:N/I:N — No Confidentiality/Integrity Impact: The double-free does not directly leak or alter data.
- A:L — Low Availability Impact: Double-free can cause process crash (denial of service) but not guaranteed memory corruption leading to code execution.
Exploitation Scenarios
Important note: No functional public PoC or exploit code is currently available. The attack chain below is inferred strictly from the vulnerability class (double-free) and the minimal CVSS/NVD information. Specific implementation details beyond the named function and file are not fabricated.
Step 1 — Reconnaissance / Target Identification
An attacker with valid high-privilege credentials (or who has compromised an account with module-management rights) identifies a Valkey 9.1.0 server exposed on the network. Common discovery methods:
- Banner grabbing on port 6379 to identify the
valkey-serverversion. - Shodan/Censys queries targeting Valkey instances.
- Internal network scans following initial foothold in the target environment.
Step 2 — Triggering the Double-Free
The attacker interacts with the Module Timer Subsystem by:
- Loading or leveraging a Valkey module that registers timers (either a legitimate module already installed or a malicious module the attacker loads — assuming they have module-load privileges).
- Issuing commands that cause the
moduleTimerHandlercallback to execute in a race-prone or error-prone sequence. The double-free is likely triggered by:- Scheduling a timer to fire, having it fire, and then re-scheduling or canceling it within the same event-loop tick.
- Concurrent client connections both issuing timer-management commands on the same timer ID.
- Aborting a timer during its callback execution.
The precise command sequence is not derivable from available data — only the function name and subsystem are known.
Step 3 — Payload / Execution Method (Class-Level)
At the vulnerability-class level, the double-free can be leveraged to:
- Cause process crash (DoS): The simplest outcome. Freed memory that is dereferenced leads to a segmentation fault, crashing the Valkey server. This results in denial of service for all clients.
- Potential heap manipulation: In sophisticated exploitation scenarios, a double-free can be chained to achieve arbitrary write or code execution via heap grooming (e.g., tcache poisoning on glibc). However, the
UI:Rrequirement and absence of confirmed PoC make this speculative.
Step 4 — Post-Exploitation Impact
- Availability degradation: Crash of the Valkey server impacts all applications relying on it as a cache, session store, or database.
- No data exfiltration: The CVSS vector (C:N/I:N) indicates no direct confidentiality or integrity impact.
- Lateral movement (low confidence): If code execution is achieved (unproven), the attacker inherits the privileges of the Valkey process (typically a low-privilege system user), which could enable further internal compromise.
Impact Assessment
Business Impact
The vulnerability is rated low severity (CVSS 2.4) due to the combination of high-privilege requirements and user interaction. However, the public disclosure of exploit techniques elevates the real-world risk:
| Dimension | Assessment |
|---|---|
| Confidentiality | None (C:N) |
| Integrity | None (I:N) |
| Availability | Low (A:L) — process crash possible |
| Attack Vector | Network (AV:N) |
| Privileges Required | High (PR:H) — admin/module management |
| User Interaction | Required (UI:R) |
| Scope | Unchanged (S:U) |
Affected Systems
- Valkey 9.1.0 installations — specifically builds containing the vulnerable
moduleTimerHandlerimplementation (tracked from commitc9e8005e9d0ec817e26c7db318861cb821409249and unfixed). - Systems that load third-party or custom Valkey modules that leverage the timer API are at elevated risk, as the timer subsystem is the attack surface.
- Standalone Valkey deployments without module loading have significantly reduced exposure.
Blast Radius
- Direct impact: Crash of the Valkey server process → downtime for dependent applications (caches, queues, session stores).
- Indirect impact: If heap corruption leads to code execution (unproven), the Valkey process's system-level account could be compromised, potentially leading to lateral movement.
- Cascading failures: Applications with connection pools may experience failover storms when the Valkey server becomes unresponsive.
Detection Guidance
Sigma Rule
title: Valkey Module Timer Double-Free Exploitation Attempt
id: c52c97f1-3e1c-4cf4-9db8-2b3c1d0f4a63
status: experimental
description: Detects Valkey server crashes or error patterns indicative of double-free exploitation in the Module Timer Subsystem (CVE-2026-82677).
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-82677
author: Valtersit Threat Intelligence
date: 2026/02/15
logsource:
category: application
product: valkey
detection:
selection_crash:
- Keywords:
- "*Segmentation fault*"
- "*double free*"
- "*corrupted double-linked list*"
- "*moduleTimerHandler*"
selection_module_ops:
- EventID: [MODULE_LOAD, MODULE_UNLOAD, TIMER_CREATE, TIMER_CANCEL]
condition: selection_crash or selection_module_ops
level: high
falsepositives:
- Legitimate module timer operations in normal operation
- Non-exploit crashes unrelated to the module timer subsystem
tags:
- attack.t1190
- cve.2026-82677
- cwe.119
YARA Rule
rule CVE_2026_82677_Valkey_DoubleFree {
meta:
author = "Valtersit Threat Intelligence"
description = "Detects strings/patterns indicative of Valkey moduleTimerHandler double-free exploitation"
cve = "CVE-2026-82677"
cwe = "CWE-119"
date = "2026-02-15"
severity = "low"
strings:
$s1 = "moduleTimerHandler" ascii fullword
$s2 = "double free or corruption" ascii
$s3 = "corrupted double-linked list" ascii
$s4 = "src/module.c" ascii fullword
$s5 = "valkey-server" ascii fullword
condition:
uint16(0) == 0x5A4D and // MZ header (PE file)
(($s1 and $s4) or ($s2 or $s3) and $s5)
}
Suricata IDS Rule
alert tcp any any -> any 6379 (msg:"CVE-2026-82677 Valkey Module Timer Double-Free Attempt"; flow:to_server,established; content:"MODULE"; nocase; content:"LOAD"; nocase; distance:1; within:10; content:"TIMER"; nocase; distance:1; within:10; reference:cve,2026-82677; classtype:attempted-dos; sid:2026082677; rev:1;)
Note: This rule detects module timer management commands sent to Valkey. Since the exact triggering command sequence is unknown, this is a coarse detection heuristic. Adjust based on telemetry from your environment.
Elastic Detection
// Detect Valkey server crash or double-free error messages combined with module timer operations
sequence by host.name with maxspan=5m
[process where event.action == "exec" and process.name == "valkey-server" and
(process.args contains "MODULE" or process.args contains "--loadmodule")]
[file where event.action == "write" and file.name == "valkey.log" and
(file.text contains "*double free*" or file.text contains "*Segmentation fault*" or
file.text contains "*moduleTimerHandler*")]
Splunk SPL Query
index=valkey sourcetype=valkey_logs
("double free" OR "Segmentation fault" OR "corrupted double-linked list" OR "moduleTimerHandler")
OR
(command="MODULE LOAD" OR command="MODULE UNLOAD" OR command="TIMER_CREATE" OR command="TIMER_CANCEL")
| table _time, host, src_ip, user, command, msg
| sort - _time
Wazuh OSSEC Rule
<group name="valkey,">
<rule id="100326" level="10">
<decoded_as>json</decoded_as>
<field name="product">valkey</field>
<match>double free|Segmentation fault</match>
<description>CVE-2026-82677 - Valkey module timer double-free crash detected</description>
<group>cve-2026-82677,</group>
</rule>
<rule id="100327" level="8">
<decoded_as>json</decoded_as>
<field name="product">valkey</field>
<match>moduleTimerHandler</match>
<description>CVE-2026-82677 - Potential exploit artifact in Valkey module timer subsystem</description>
<group>cve-2026-82677,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch Status
| Metric | Value |
|---|---|
| Patch Confidence | 0/4 — UNPATCHED |
| Patch Sources | None confirmed |
| Vendor Fix | N/A (no verified official fix) |
| Referenced Patch | commit b349fe2821e3998534b1454c1b64a478daf8c6b7 (mentioned in NVD; not confirmed in release branches) |
1) Immediate Mitigations
- Restrict module management access: Ensure only trusted administrators can execute
MODULE LOAD,MODULE UNLOAD, or any module-timer-related commands. Use Valkey's ACL (Access Control Lists) to deny these commands to non-privileged users. - Disable module loading: If third-party modules are not required, set
enable-module-command noinvalkey.confto entirely disable the module subsystem. - Network segmentation: Restrict access to the Valkey port (default 6379) via firewall rules to trusted IP ranges only. Do not expose Valkey to the public internet.
- Monitor for anomalous crashes: Deploy the detection rules above (Sigma, Suricata, Splunk, etc.) to alert on double-free or module-timer crash signatures.
2) Patch / Upgrade Steps
- Verify patch availability: Track the Valkey upstream repository (github.com/valkey-io/valkey) for a release containing commit
b349fe2821e3998534b1454c1b64a478daf8c6b7or a subsequent fix. - Upgrade path: Once a patched version (likely > 9.1.0) is released, validate compatibility with your modules, then deploy to staging before production.
- If the referenced commit is confirmed: Apply the patch manually via
git cherry-pick b349fe2821e3998534b1454c1b64a478daf8c6b7and rebuild. - Emergency workaround if patching is impossible: Consider downgrading to Valkey 9.0.x or earlier if the vulnerable code path was introduced in 9.1.0 (unconfirmed — verify in changelog).
3) Long-Term Hardening
- Principle of least privilege: Enforce strict ACLs on all Valkey commands, particularly module-management and timer-related operations.
- Regular patch cadence: Subscribe to Valkey security advisories and monitor NVD/CISA for updates on this CVE.
- Runtime protection: Use seccomp/AppArmor profiles on the Valkey process to limit system calls, reducing the impact of any memory-corruption exploit.
- Redundancy: Operate Valkey in high-availability (replica/sentinel) mode to survive a single-node crash from exploitation.
- Security review of modules: Audit any third-party modules loaded into Valkey for unsafe timer-handling patterns.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-82677
- Valkey GitHub Repository: https://github.com/valkey-io/valkey (monitor for patch commit
b349fe2821e3998534b1454c1b64a478daf8c6b7) - CWE-119 Reference: https://cwe.mitre.org/data/definitions/119.html
- CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog (CVE-2026-82677 is NOT listed as of this writing)
Known Threat Actor Activity
- No confirmed exploitation in the wild has been attributed to specific threat actors as of this report's date.
- PoC public disclosure: The NVD description states "the exploit has been publicly disclosed" — but no functional exploit code or Nuclei template has been found on public repositories (GitHub, Exploit-DB, etc.) at this time.
- EPSS status: Not yet scored by FIRST.org; no probability-of-exploitation metric is currently available.