We release patches for security vulnerabilities in the following versions:
| Version | Supported |
|---|---|
| 0.5.x | ✅ |
| < 0.5 | ❌ |
Please do not report security vulnerabilities through public GitHub issues.
Instead, please report them via email to security@tiverse.dev.
You should receive a response within 48 hours. If for some reason you do not, please follow up via email to ensure we received your original message.
Please include the following information:
- Type of issue (e.g., buffer overflow, SQL injection, cross-site scripting, etc.)
- Full paths of source file(s) related to the manifestation of the issue
- The location of the affected source code (tag/branch/commit or direct URL)
- Any special configuration required to reproduce the issue
- Step-by-step instructions to reproduce the issue
- Proof-of-concept or exploit code (if possible)
- Impact of the issue, including how an attacker might exploit it
This information will help us triage your report more quickly.
DRAV considers the following threats:
- Malicious terminal input: ANSI escape sequence injection
- Plugin attacks: Unauthorized filesystem/network access
- Resource exhaustion: Memory/CPU DoS via plugins
- Path traversal: Unauthorized file access
- Command injection: Via command parser
- All terminal input is sanitized to remove dangerous escape sequences
- See
internal/ansi/sanitize.gofor implementation - XSS-like attacks via terminal escape codes are prevented
- Plugins run with capability-based security (see
pkg/vayu/capability.go) - Filesystem access is restricted to explicitly allowed paths
- Network access is limited to whitelisted domains/ports
- Resource limits enforced (memory, goroutines, timeouts)
- Plugin isolation via WASM or out-of-process execution
- Path traversal prevention in
internal/osutil/pathsafe.go - All paths validated against allowed roots
- Symbolic link attacks mitigated
- Command input sanitized and validated
- No shell execution - commands run directly
- Arguments properly escaped
// All terminal input is sanitized
import "github.com/TIVerse/drav/internal/ansi"
safe := ansi.Sanitize(userInput)caps := vayu.Capabilities{
Filesystem: vayu.FSCapability{
Read: []string{"/allowed/path"},
Write: []string{"/allowed/output"},
},
Network: vayu.NetworkCapability{
AllowedDomains: []string{"api.safe.com"},
RateLimit: 100, // requests per minute
},
}import "github.com/TIVerse/drav/internal/osutil"
safePath, err := osutil.SafePath(baseDir, userPath)- Plugin Sources: Only load plugins from trusted sources
- Capability Review: Audit plugin capabilities before loading
- Updates: Keep DRAV updated to receive security patches
- Input Validation: Validate all user input in your applications
- Resource Limits: Configure appropriate resource limits for plugins
- Code is regularly scanned with gosec
- Dependencies checked with govulncheck
- Container images scanned with Trivy
- All PRs undergo security review
We use:
go.modfor dependency tracking- Dependabot for automated updates
- Regular security audits of dependencies
- Minimal dependency footprint
- WASM Isolation: WASM plugin support is experimental
- Terminal Escape Sequences: Complex escape sequences may not be fully sanitized
- Resource Limits: Best-effort enforcement on some platforms
- Go Plugin System: Linux-only and has known security limitations
- Input validation for all user data
- No use of
unsafepackage without justification - Error messages don't leak sensitive information
- No hardcoded secrets or credentials
- Proper cleanup of sensitive data
- Thread-safe code with documented concurrency
- Tests include security edge cases
When we receive a security bug report, we will:
- Confirm the problem and determine affected versions
- Audit code to find similar problems
- Prepare fixes for all supported versions
- Release patches as soon as possible
We prefer to fully disclose the vulnerability as soon as a fix is available. We will coordinate with you on the disclosure timing and give you credit for the discovery unless you prefer to remain anonymous.
If you have suggestions on how this process could be improved, please submit a pull request or open an issue.
We maintain a list of security researchers who have responsibly disclosed vulnerabilities:
No entries yet - be the first!
Last Updated: 2025-10-29
Thank you for helping keep DRAV and its users safe!