target_ref = $ARGUMENTS
If target_ref is not provided, ask the user which tag or commit to compare against HEAD.
Overview
Thoroughly check for malicious code in the diff between ${target_ref} and the latest commit (HEAD).
Steps
Verify the target ref exists and get the diff scope.
- Run
git log ${target_ref}..HEAD --onelineto list commits. - Run
git diff ${target_ref}..HEAD --statto get file change statistics. - Categorize changed files into: CI/CD workflows, source code, and config/docs.
- Run
Execute the following security reviews in parallel using subagents:
Call security-reviewer subagent to review CI/CD and workflow files (
.github/,scripts/) for:- Secret exfiltration
- Script injection (
${{ github.event.* }}direct expansion inrun:) - Suspicious external URLs/API connections
- Privilege escalation or token misuse
- Malicious command execution (
curl | bash,eval, base64 decode execution) - Supply chain attack patterns (suspicious npm packages, unsigned action references)
- Dangerous
pull_request_targetusage
Call security-reviewer subagent to review source code files (
src/) for:- Arbitrary code execution (
eval,Functionconstructor, suspiciouschild_processusage) - Path traversal (
../..directory escape) - Command injection (user input passed directly to shell commands)
- Suspicious external communication (
fetch,http.request,axiosto external URLs) - Unauthorized filesystem operations
- Credential/token leakage (hardcoded tokens, logging sensitive values)
- Dependency tampering (suspicious
package.jsonchanges) - Backdoor patterns (obfuscated code, suspicious conditionals, hidden functionality)
- Prototype pollution and deserialization vulnerabilities
- Supply chain attacks (suspicious new dependency packages)
- Arbitrary code execution (
Call security-reviewer subagent to review config and documentation files for:
- Suspicious dependencies or scripts in
package.json - Suspicious registries or URLs in lockfiles
- Security rule relaxation in config schemas or linter configs
- Suspicious settings in devcontainer or editor configs
- Phishing URLs in documentation
- Malicious instructions in AI rule/subagent/skill definitions
- Suspicious dependencies or scripts in
Integrate the results from all subagents and produce a unified report in the following format:
## Security Review Report: ${target_ref} -> HEAD ### Conclusion - Whether malicious code was detected or not ### Check Results Summary Table | Check Item | Result | |------------|--------| | ... | ... | ### Findings (if any) | Severity | Description | File | Risk | |----------|-------------|------|------| | ... | ... | ... | ... | ### Recommendations (if any) - Actionable recommendations for each finding ### Positive Observations - Good security practices found in the diff