We release patches and security updates for the following versions:
| Version | Supported |
|---|---|
| 2.x | Yes |
| 1.x | No (End of Life) |
| < 1.0 | No |
The NaSuno team takes security seriously. If you discover a vulnerability, please report it responsibly instead of opening a public GitHub issue.
- Send an email to
security@nasuno.org(or open a confidential GitHub Security Advisory). - Include the following details in your report:
- Type of issue (e.g., buffer overflow, malicious audio payload processing, denial of service, memory leak)
- Step-by-step instructions or proof-of-concept audio file to reproduce the issue
- Affected versions and environments (operating system, Python version)
- Proposed mitigation or fix, if available
- Acknowledgment: Within 48 hours of receipt.
- Assessment & Confirmation: Within 5 business days.
- Fix & Advisory Release: Coordinated with the reporter, typically within 14 to 30 days depending on severity.
Because NaSuno processes arbitrary binary audio formats from untrusted sources, binary media represents an attack surface for memory corruption, buffer overflows in codec libraries, and decompression Denial-of-Service (DoS) attacks. The following defensive safeguards are enforced across all runtime environments:
- Threat: Maliciously crafted audio files with headers specifying extreme sample rates (e.g. 192 kHz), 128 channels, or infinite durations causing Out-Of-Memory (OOM) crashes.
- Mitigation:
- Header inspection prior to full buffer decompression.
- Enforced maximum duration and sample rate thresholds in
AudioReader. - Chunked streaming processing (
StreamingProcessor) that limits working memory to fixed ring buffers (< 256 MB) regardless of file length.
- Threat: Corrupted audio frames containing
NaN(Not a Number),Inf(Infinity), or extreme floating-point amplitudes causing arithmetic exceptions or downstream DAC speaker damage. - Mitigation:
cleanup_nans: Every DSP input and output stage sanitizes arrays, substitutingNaNandInfwith zeros.- Hard clipping protection:
AudioWriterclamps all output sample values strictly within[-1.0, 1.0].
- Threat: Python's
picklemodule oreval()can execute arbitrary machine code during model or configuration loading. - Mitigation:
- NaSuno strictly forbids the use of
pickleoreval(). - All models, configuration profiles, and metadata use pure Python dataclasses and standard JSON serialization.
- NaSuno strictly forbids the use of
- Threat: Remote code execution inside container environments compromising the host system.
- Mitigation:
- The official Dockerfile enforces an unprivileged runtime user (
nasuno, UID 1000). - Root filesystem write permissions are disabled outside
/dataand/home/nasuno/.cache.
- The official Dockerfile enforces an unprivileged runtime user (