Every CVE Search/ Get API key

CVE-2026-61854

VoiceSentinel: Race condition in report buffer cleanup can corrupt transcript data and cause unbounded disk growth

8.2 High

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
Low
Availability
High

Exploit likelihood

0.24%Unchanged since Oct 31, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.2

VoiceSentinel: Race condition in report buffer cleanup can corrupt transcript data and cause unbounded disk growth

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.

Record
CVE-2026-61854
CVSS 3.1
8.2 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
Weakness
CWE-362, CWE-400, CWE-667
Updated
2026-11-02
EUVDEUVD-2026-114280 8.2

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.

Record
EUVD-2026-114280
CVSS 3.1
8.2 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
Updated
2026-11-02
NVD 8.2

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.

Record
CVE-2026-61854
CVSS 3.1
8.2 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
Weakness
CWE-362, CWE-400, CWE-667
Updated
2026-11-02
OSV 8.2

VoiceSentinel: Race condition in report buffer cleanup can corrupt transcript data and cause unbounded disk growth

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.

Record
CVE-2026-61854
CVSS 3.1
8.2 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
Weakness
CWE-362, CWE-400, CWE-667
Updated
2026-11-02

Affected products

History

History
RecordedChangedSources
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-61854 is a high vulnerability (CVSS 8.2) in Jackh54 Voicesentinel, published October 30, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.24%, the 15th percentile. No source names a fixed version.

References

MoveEnter Open