This audit addresses security vulnerabilities and dependency management issues in the Stellar Kubernetes Operator. The project has comprehensive security monitoring in place via cargo-deny and cargo-audit, with 23 known advisories currently tracked and justified.
- Comprehensive security monitoring via
cargo-denyandcargo-audit - Well-documented advisory exceptions with justifications
- License compliance enforcement
- Explicit crate banning (openssl blocked in favor of rustls)
- Version pinning for critical security fixes (anyhow 1.0.103, bytes 1.11.1)
- 23 security advisories currently ignored (though most are justified)
- Some transitive dependencies cannot be upgraded due to ecosystem constraints
- Major version upgrades needed for wasmtime (24.x → 36.x)
- Several unmaintained dependencies in the dependency tree
-
wasmtime 24.x → 36.x Upgrade
- Impact: 6 critical vulnerabilities affecting Winch backend (unused by us, but still present)
- Current: wasmtime 24.0.11, wasmtime-wasi 24.0.11
- Target: wasmtime ≥36.x
- Blockers: Breaking API changes require code updates
- Risk: LOW (vulnerabilities are in unused Winch backend)
-
rustls-webpki Multiple Versions
- Impact: TLS certificate parsing vulnerabilities
- Current: 0.101.7 (via kube-client) + 0.102.8 (via reqwest)
- Target: ≥0.103.12
- Blockers: Requires upstream kube-rs and reqwest updates
- Risk: LOW (we don't process untrusted certificates)
-
Unmaintained Dependencies
backoff 0.4.0(via kube-runtime)derivative 2.2.0(via kube-runtime)instant 0.1.13(via backoff)fxhash 0.2.1(via wasmtime)paste 1.0.15(via wasmtime)rustls-pemfile 2.2.0(via kube-client/axum-server)ttf-parser 0.19.2(via printpdf)
-
Version Pinning Updates
- Review pinned versions for newer patches
anyhow = "1.0.103"- check for 1.0.104+bytes = "1.11.1"- check for newer security patches
-
Dependency Deduplication
- Multiple syn versions (1.x vs 2.x ecosystem split)
- Multiple tokio-util versions
- Review with
cargo tree --duplicates
- Transitive-Only Issues
rsa 0.9.10Marvin Attack (sqlx-mysql only, we use postgres)rand 0.9.2unsound behavior (testing dependencies only)- Various wasmtime Winch backend issues (unused backend)
# Add to CI pipeline
cargo deny check
cargo audit --deny warnings- Require security review for new dependencies
- Monthly audit of ignored advisories
- Quarterly major version upgrade assessment
# Add to Cargo.toml profiles
[profile.release]
strip = true # Remove debug symbols
panic = "abort" # Don't unwind on panic
codegen-units = 1 # Better optimization
lto = true # Link-time optimization- Pin exact versions in Cargo.lock
- Use
cargo-vetfor dependency auditing - Implement SBOM generation
- Update dependency scanning in CI
- Review and update pinned security patches
- Document security review process
- Add automated security scanning to pre-commit hooks
- Evaluate wasmtime 36.x upgrade path
- Create tracking issues for upstream dependency updates
- Implement workarounds for unmaintained dependencies where possible
- Implement SBOM generation
- Set up automated dependency update PRs
- Create security baseline documentation
- Establish quarterly security review process
# Current commands
cargo deny check
cargo audit
# Proposed additions
cargo outdated --root-deps-only
cargo tree --duplicates
cargo vet- Block PRs with new security advisories
- Require security team approval for ignored advisories
- Automated SBOM generation and publishing
- ✅ Comprehensive allowlist in deny.toml
- ✅ Explicit handling of copyleft licenses
- ✅ Unicode-DFS-2016 exception documented
- Update README with security contact
- Document security advisory triage process
- Create SECURITY.md with vulnerability reporting
| Issue Category | Risk Level | Justification |
|---|---|---|
| Wasmtime vulnerabilities | LOW | Unused Winch backend only |
| Unmaintained deps | MEDIUM | Transitive only, no direct usage |
| TLS cert parsing | LOW | No untrusted cert processing |
| Supply chain | LOW | Comprehensive scanning in place |
| License compliance | LOW | Well-controlled allowlist |
Overall Risk Level: LOW to MEDIUM
The project demonstrates strong security awareness with comprehensive monitoring. Most high-severity advisories are appropriately justified as not applicable to production usage patterns.