CVE Catalog

CVE-2026-61854

HighCVSS 8.2
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.24%

16th percentile - higher than 16% of all known CVEs

Summary

In VoiceSentinel (a real-time voice moderation system for Minecraft servers) versions 2.2.1 through 3.3.0, the optional report buffer feature has a race between retention cleanup and transcript writes. _maybe_cleanup() uses an unlocked dictionary for hourly cleanup throttling, and _cleanup_tenant() rewrites transcripts.jsonl without file locking or atomic replacement while report_buffer_append_async appends without synchronization. With the report buffer enabled, racing writes can lose, duplicate, or corrupt transcript data and defeat retention pruning, leading to unbounded disk growth.

Risk Assessment

Transcript data may be lost or corrupted, and disk exhaustion can crash the host or other services sharing it. The feature is opt-in and disabled by default.

Recommendation

Upgrade VoiceSentinel to version 3.3.1 or later. If the report buffer is not needed, keep report_buffer.enabled set to false; if used, set processing.worker_count to 1 until patched.

Related vulnerabilities

Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS