Skip to content

Security: CardSorting/NOVAV2

Security

SECURITY.md

Security Policy

The NOVA security team takes the safety, integrity, and operational resilience of our distributed inference infrastructure seriously. We appreciate the responsible disclosure of security vulnerabilities by security researchers, operators, and community members.


Supported Versions

Only the current major release branch receives proactive security patches, audit reviews, and dependency vulnerability updates.

Version Supported Security Maintenance Status
2.0.x (Rust) ✅ Active production substrate (Standalone Compute Ranch)
1.x (TypeScript) ✅ Maintenance & legacy bridge
< 1.0 ❌ Deprecated / Unsupported

Reporting a Vulnerability

If you discover a security vulnerability within NOVA V2, please do NOT open a public issue, discussion, or pull request.

Instead, submit your report confidentially:

  1. GitHub Private Security Advisory (Recommended): Navigate to the NOVA V2 Security Advisories page and click "Report a vulnerability".
  2. Security Email: Send an encrypted report to security@cardsorting.org.

What to Include in Your Report

To facilitate swift triage and resolution:

  • A descriptive summary of the vulnerability and its operational impact.
  • Step-by-step reproduction instructions, curl commands, or a minimal test case.
  • The specific module affected (e.g., src/pipeline.rs, src/balance.rs, src/gateway.rs).
  • Any observed memory safety, token starvation, or unauthorized header exposure anomalies.

Response Timelines

  • Initial Acknowledgment: Within 24 to 48 hours.
  • Triage & Severity Assessment: Within 3 business days.
  • Coordinated Disclosure: We kindly request that you maintain confidentiality until a patched binary or release tag has been published.

Security Architecture & Defense-in-Depth Guarantees

NOVA V2 is built in pure, memory-safe Rust (#![forbid(unsafe_code)] across all core routing paths) and implements several architectural defenses:

1. Timing-Safe API Key Authentication

All client incoming Bearer tokens are validated using constant-time comparison algorithms to eliminate side-channel and timing attacks against the inference gateway.

2. Zero-Leak Reverse Proxy Privacy Boundary

Public API callers (/v1/*) are strictly separated from upstream cluster topologies:

  • Internal shard identifiers, pool configurations, and private upstream endpoints are completely stripped before returning responses.
  • Upstream socket errors and stack traces are normalized to clean RFC 7807 / OpenAI error JSON structures.

3. Memory Boundary & DoS Protection

  • Bounded TTL Retention: Job records and SSE event streams are strictly pruned after a configurable retention window (default 3,600s), preventing memory exhaustion attacks via abandoned client streams.
  • Continuous Token-Bucket Governor: Hardware-grade rate limiting guarantees no single tenant or shard exhausts upstream quotas.
  • Atomic Shard Leasing: Shards cannot be double-allocated or starved under concurrent Tokio tasks.

There aren't any published security advisories