Skip to content

Security: SuperInstance/dodecet-encoder

Security

SECURITY.md

Security Policy

Supported Versions

Currently supported versions of the dodecet-encoder project:

Version Supported Security Updates
1.0.x Yes
0.2.x No
0.1.x No

Note: Only the latest stable version (1.0.x) receives security updates.

Reporting a Vulnerability

The dodecet-encoder team takes security seriously. If you discover a security vulnerability, please report it responsibly.

How to Report

Do NOT file a public issue. Instead, send a private report to the maintainers:

  1. Email: security@superinstance.ai
  2. GitHub: Send a private report through GitHub's private vulnerability reporting
  3. PGP Key: Available at https://superinstance.ai/pgp

What to Include

Please include the following information in your report:

  • Description: Detailed description of the vulnerability
  • Impact: Potential impact of the vulnerability
  • Steps to Reproduce: Clear steps to reproduce the issue
  • Proof of Concept: Code or screenshots demonstrating the vulnerability
  • Affected Versions: Which versions are affected
  • Suggested Fix: If available, suggested fix or mitigation

Response Timeline

You can expect a response within:

  • 48 hours: Initial acknowledgment of receipt
  • 7 days: Detailed assessment and validation
  • 14 days: Proposed fix timeline
  • 30 days: Fix released (for critical vulnerabilities)

Communication

We will keep you informed throughout the process:

  1. Acknowledgment: Confirmation that we received your report
  2. Validation: Confirmation that we can reproduce the issue
  3. Resolution: Estimated timeline for fix
  4. Disclosure: Notification when fix is released

Security Model

Threat Model

The dodecet-encoder library is designed with the following security considerations:

Trusted Computing Base:

  • Pure Rust implementation with minimal dependencies
  • No unsafe code except in well-validated performance-critical sections
  • No network operations or external I/O
  • No dynamic code loading

Attack Surface:

  • Input validation (hex strings, dodecet values)
  • Memory safety (bounds checking, overflow protection)
  • Type safety (Rust's type system prevents invalid states)

Security Guarantees:

  • Memory safety: No buffer overflows, use-after-free, or null pointer dereferences
  • Type safety: Invalid states prevented at compile time
  • Bounds checking: All array accesses checked
  • Overflow protection: Arithmetic operations handle overflow gracefully

Known Limitations

Integer Overflow:

  • Arithmetic operations may overflow
  • Use checked operations for security-critical code
  • Consider wrapping operations for performance-critical code

Precision Limits:

  • 12-bit precision (0-4095) may be insufficient for some applications
  • Quantization errors can accumulate in complex calculations
  • Consider floating-point for high-precision requirements

No Cryptography:

  • Dodecet encoding is NOT cryptographically secure
  • Do NOT use for cryptographic operations
  • Use dedicated crypto libraries for security

Security Best Practices

For Users

  1. Input Validation:

    // Always validate input
    let d = Dodecet::new(value)
        .expect("Invalid dodecet value");
    
    // Or handle error gracefully
    match Dodecet::new(value) {
        Ok(d) => { /* use d */ }
        Err(e) => { /* handle error */ }
    }
  2. Bounds Checking:

    // Access array elements safely
    let nibble = d.nibble(index)
        .unwrap_or(0); // Provide default
  3. Overflow Handling:

    // Use checked arithmetic for security
    let sum = a.checked_add(b)
        .expect("Overflow detected");
  4. Precision Awareness:

    // Be aware of quantization effects
    let point = Point3D::new(x, y, z);
    let distance = point.distance_to(&other);
    // Consider precision limitations in calculations

For Contributors

  1. Code Review:

    • All code must be reviewed by at least one maintainer
    • Security-sensitive code requires additional review
    • Use security-focused code review checklist
  2. Testing:

    • Include unit tests for all new code
    • Add integration tests for workflows
    • Include security tests for input validation
  3. Documentation:

    • Document security considerations
    • Note potential security issues
    • Provide secure usage examples
  4. Dependencies:

    • Minimize external dependencies
    • Audit dependencies regularly
    • Keep dependencies up to date

Security Audits

Completed Audits

Initial Security Audit (2026-03-15):

  • Scope: Complete codebase review
  • Findings: No critical or high-severity issues
  • Recommendations: Implemented all suggestions
  • Report: Available at docs/SECURITY_AUDIT_2026_03_15.md

Future Audits

Planned security audits:

  • Next Audit: 2026-09-01 (6 months post-1.0)
  • Frequency: Semi-annual
  • Scope: Full codebase + dependencies
  • Auditor: Third-party security firm

Dependency Security

Current Dependencies

[dependencies]
# Core dependencies (minimal, audited)
# No external dependencies for core functionality

[dev-dependencies]
# Development dependencies only
criterion = "0.5"  # Benchmarks

Dependency Policy

  1. Minimal Dependencies: Use as few dependencies as possible
  2. Trusted Sources: Only use reputable, well-maintained crates
  3. Regular Updates: Update dependencies monthly
  4. Security Patches: Apply security patches immediately
  5. Vulnerability Scanning: Run cargo audit weekly

Vulnerability Disclosure

Disclosure Policy

We follow responsible disclosure practices:

  1. Private Report: Vulnerability reported privately
  2. Validation: Team validates and reproduces issue
  3. Fix Development: Security fix developed and tested
  4. Coordinated Release: Fix released with security advisory
  5. Credit: Reporter credited (with permission)

Security Advisories

Security advisories will be published at:

CVE Assignment

For vulnerabilities meeting CVE criteria:

  • CVE ID assigned during disclosure process
  • Published in security advisory
  • Linked to fix release

Security Features

Built-In Protections

  1. Memory Safety:

    • Rust's ownership system prevents memory corruption
    • No buffer overflows possible
    • No use-after-free vulnerabilities
  2. Type Safety:

    • Invalid states prevented at compile time
    • No null pointer dereferences
    • No data races
  3. Bounds Checking:

    • All array accesses checked
    • No out-of-bounds access
    • Panic on invalid access
  4. Input Validation:

    • All public APIs validate input
    • Result types for fallible operations
    • Clear error messages

Security Resources

For Users

For Contributors

Contact

For security-related questions:

Acknowledgments

We thank all security researchers who have responsibly disclosed vulnerabilities to help improve the security of the dodecet-encoder project.


Last Updated: 2026-03-16 Version: 1.0.0 Security Policy Version: 1.0

There aren’t any published security advisories