mirror of
https://github.com/rtk-ai/rtk.git
synced 2026-09-19 07:33:17 +08:00
66101ebb65
This PR implements a 3-layer security review process to protect RTK
against shell injection, supply chain attacks, and backdoors from
external contributors.
**Layer 1: Automated GitHub Action**
- .github/workflows/security-check.yml: Runs on every PR
- cargo audit for CVE detection in dependencies
- Critical files alert (runner.rs, tracking.rs, Cargo.toml, workflows)
- Dangerous pattern scanning (Command::new("sh"), reqwest::, unsafe, etc.)
- New dependency auditing
- Clippy security lints
- Structured report in GitHub Actions summary
**Layer 2: Documentation**
- SECURITY.md: Public security policy with:
- Vulnerability reporting process (responsible disclosure)
- PR security review workflow for external contributors
- Critical files requiring enhanced review (3 tiers)
- Dangerous code patterns we check for
- Dependency security criteria
- Best practices for contributors
**Layer 3: Claude Code Skill (external)**
- Skill rtk-pr-security deployed in reviewer's local environment
- Provides comprehensive RTK-specific analysis
- Complements automated checks with semantic analysis
**Critical Files Protected:**
- src/runner.rs (shell execution engine)
- src/summary.rs (command aggregation)
- src/tracking.rs (SQLite database)
- src/pnpm_cmd.rs (input validation)
- Cargo.toml (supply chain)
- .github/workflows/ (CI/CD tampering)
**Detection Patterns:**
- Shell injection vectors (Command::new("sh"))
- Environment manipulation (.env("LD_PRELOAD"))
- Network operations (reqwest::, std::net::)
- Unsafe code blocks
- Panic-inducing code (.unwrap() in production)
- Time-based logic bombs
- Obfuscated code (base64, hex)
**Review Requirements:**
- Standard review: Non-critical files, <200 lines
- Enhanced review: Critical files OR >200 lines
- 2 maintainers: Cargo.toml changes OR workflow modifications
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
6.8 KiB
6.8 KiB