Skip to main content

VoiceSentinel Processor CVE-2026-61854

| EUVDEUVD-2026-114280 HIGH
Race Condition (CWE-362)
2026-10-30 GitHub_M
8.2
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach processor with report buffer enabled
  2. Delivery
    Generate concurrent transcript write load
  3. Exploit
    Collide appends with hourly cleanup rewrite
  4. Execution
    Retention pruning silently fails, data corrupts
  5. Persist
    Unbounded disk growth exhausts storage
  6. Impact
    Host or co-located services crash

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the opt-in report buffer to be turned on (report_buffer.enabled: true in config.json); it is disabled by default, which is the primary limiting factor. The race is reached through normal operation but is substantially more likely/faster when processing.worker_count is 2 or more (the project's own documented performance recommendation) or on a busy/shared public-pool deployment where multiple servers write to the same tenant file via a shared server_key. Only versions 2.2.1 through 3.3.0 are affected; the manifestation is timing/load-dependent (CWE-362), so it is not reliably triggerable on demand and primarily degrades availability (disk exhaustion) and transcript integrity rather than exposing data.

Impact

Signals are mixed and point to a moderate, operationally-scoped risk rather than an urgent emergency. The input CVSS is 8.2 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H), driven almost entirely by the Availability:High component (disk exhaustion crashing the host), with Integrity only Low and no Confidentiality impact. The vuln.today decision label is 'this_week' (not act_now/emergency). No EPSS score, no CISA KEV listing, and no public PoC were provided - the only references are the vendor GHSA advisory, the fix commit, and the 3.3.1 release tag, i.e. patch artifacts, not exploit code. Exploitation status: no public exploit identified at time of analysis. Two tensions should be flagged explicitly: (1) the input vector marks AC:L, but the root cause is a CWE-362 race between retention cleanup and transcript appends that depends on concurrency timing and load - a deliberate attacker-driven trigger is closer to high-complexity, so AC:L overstates how reliably an outsider can force it; (2) the vector is AV:N/PR:N, yet this is not a classic crafted-request RCE - it is a concurrency defect reached through normal processing load, and critically it only exists when the opt-in report_buffer.enabled feature is turned on (disabled by default), which the base CVSS vector does not reflect. Net: a genuine availability/integrity reliability bug worth patching on a normal cycle for operators who enabled the report buffer, but not a widespread drive-by exploitation threat.

Exploit ScenarioDerived

On a VoiceSentinel processor with report_buffer.enabled=true and the recommended processing.worker_count of 2+, sustained concurrent voice traffic causes multiple _processing_worker tasks to append transcripts while a once-per-hour retention cleanup rewrites transcripts.jsonl in place without locking. The racing write clobbers the cleanup (or vice versa), silently defeating retention pruning so the buffer grows without bound, eventually filling the disk and crashing the host and any co-located services. No public exploit code is identified; the condition can arise in normal operation, and a busy or shared public-pool deployment (many servers sharing one server_key file) accelerates it.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Concurrent transcript writes and hourly retention cleanup in the VoiceSentinel Processor's opt-in report buffer (versions 2.2.1 through 3.3.0) can lose, duplicate or corrupt transcript records and silently defeat retention pruning, so the buffer stops shrinking and grows until the processor host's disk fills and the machine or co-located services crash. The flaw is a check-then-act race: cleanup reads and rewrites transcripts.jsonl in place while appends land from a separate thread, and multiple _processing_worker tasks make the collision reachable during normal operation, especially with processing.worker_count of 2 or more or a shared public-pool deployment using one server_key. Exploitation is gated behind report_buffer.enabled being set to true (off by default), the outcome is timing- and load-dependent, and no public exploit code or active exploitation was identified at time of analysis; the vendor-released patch is 3.3.1.

RemediationAI

Upgrade the VoiceSentinel Processor to version 3.3.1, the vendor-released patch that introduces a per-tenant asyncio.Lock serializing transcript appends with retention cleanup and converts the cleanup rewrite to an atomic temp-file plus os.replace() operation; see the release at https://github.com/jackh54/VoiceSentinel/releases/tag/v3.3.1, the fix commit at https://github.com/jackh54/VoiceSentinel/commit/a8c9f926d19969a19d05eee2a508719aea7f109c and the advisory at https://github.com/jackh54/VoiceSentinel/security/advisories/GHSA-vhqx-3242-77j7. If upgrading cannot be done immediately, the most effective compensating control is to disable the optional feature by setting report_buffer.enabled to false, at the cost of losing report-buffer transcript retention entirely. Lowering processing.worker_count to 1 reduces collision frequency but does not remove the race, because appends still run on a separate thread via asyncio.to_thread; avoiding shared server_key values across servers in a public pool likewise reduces, but does not eliminate, contention. Until patched, monitor free space on the processor host and the size of each tenant's transcripts.jsonl, and prune or archive those files manually, since retention_seconds pruning can silently fail under the race.

Affected VersionsENISA

VoiceSentinel 2.2.1, < 3.3.1

Affected Packages

euvd voicesentinel fix: 3.3.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

VoiceSentinel's report buffer persists moderation transcripts to per-tenant JSONL files under the configured report_buffer path. In report_buffer.py, _maybe_cleanup() throttles cleanup to once per hour using a plain dictionary with no lock, a check-then-act pattern (CWE-362) that lets simultaneous _cleanup_tenant() runs proceed for the same tenant; the advisory also classifies the consequences as CWE-400 (uncontrolled resource consumption) and CWE-667 (improper locking). _cleanup_tenant() reads the whole transcripts.jsonl into memory and rewrites it in place via open(path, "w") with no file lock and no atomic temp-file-plus-rename replacement, while report_buffer_append_async() performs an unsynchronized open(path, "a") inside asyncio.to_thread. main.py runs multiple concurrent _processing_worker tasks, so the append thread can interleave with a cleanup rewrite; the project's own documentation recommends processing.worker_count of 2 or more, and public-pool servers sharing a server_key concentrate many writers onto one tenant file. The upstream fix adds a per-tenant asyncio.Lock (obtained through a guarded lock registry) that wraps the append write and the cleanup read-rewrite as a single critical section, and makes the rewrite atomic by writing to a temporary file and calling os.replace(). Per the assessed vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H, the attack surface is network-reachable and requires no privileges or user interaction, but the high attack complexity reflects the timing/load-dependent nature of the race; confidentiality is unaffected and impact is limited to integrity of transcript data and availability of the host.

Know when Voicesentinel gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
vuln.today AI 6.5 MEDIUM

Race condition triggered by concurrency timing justifies AC:H; no auth to send voice so PR:N; availability dominates (disk exhaustion) A:H, transcript corruption I:L, no confidentiality impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
High

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 20:03 EUVD
CVE Published
Oct 30, 2026 - 18:25 cve.org
HIGH 8.2

DescriptionCVE.org

VoiceSentinel is a real-time voice moderation system for Minecraft servers. From 2.2.1 until 3.3.1, the optional report buffer feature has a race between retention cleanup and normal transcript writes. In report_buffer.py, _maybe_cleanup() uses an unlocked dictionary for once-per-hour cleanup throttling, allowing simultaneous _cleanup_tenant() operations for one tenant. Cleanup reads transcripts.jsonl and rewrites it in place without file locking or atomic replacement, while report_buffer_append_async uses asyncio.to_thread to append without synchronization. In main.py, concurrent _processing_worker tasks make this reachable in normal operation; processing.worker_count of two or more and public-pool servers sharing a server_key increase collisions. With report_buffer.enabled set to true, racing writes can lose, duplicate or corrupt transcript data and defeat report_buffer.retention_seconds pruning, allowing unbounded disk growth that can exhaust storage and crash the host or other services sharing it. The feature is opt-in and disabled by default. This issue is fixed in version 3.3.1.

Technical POC Analysis

CWE-362 race condition (advisory also maps CWE-400 and CWE-667) in the VoiceSentinel Processor's opt-in report buffer, specifically reportbuffer.py.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

CVE-2026-61854 is a high-severity flaw in the VoiceSentinel Processor (versions 2.2.1-3.3.0) that can cause transcript data corruption and unbounded disk growth, leading to host crashes and disruption of co-located services. Organizations using the opt-in report buffer feature, especially with multiple processing workers or shared public-pool deployments, are at risk of data integrity loss and operational downtime.

Business Impact: High
Compensating Controls

Vendor-released patch: 3.3.1. If immediate patching is not possible, disable the report buffer feature (set report_buffer.enabled to false) to remove the vulnerability exposure.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Low
niche third-party Minecraft voice-moderation plugin, limited server footprint
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy