T08 · Insecure Dependencies
- Location
SKILL.md:31- Finding
Unpinned Checkov Package Installation Creates a Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a purpose-aligned Terraform security auditing guide with expected scanner commands, but users should pin third-party dependencies and be careful with Terraform state data.
Install and run this only in an isolated development or CI environment, pin scanner packages and GitHub Actions to reviewed versions or commit SHAs, and treat Terraform plan/state outputs as sensitive because they may expose infrastructure details or secrets.
SKILL.md:31Unpinned Checkov Package Installation Creates a Supply-Chain Risk
SKILL.md:184Checkov GitHub Action Uses a Mutable Master Branch Reference
The code substantially matches the core purpose of Terraform security auditing and does detect examples of the declared issue classes such as overly permissive IAM, public exposure, and missing encryption. However, the description specifically claims use of Checkov, tfsec, Terrascan, and OPA/Rego policies, while the implementation only invokes Checkov and tfsec plus a small custom plan scanner. There is no Terrascan execution and no OPA/Rego policy evaluation. This is a meaningful description-to-behavior mismatch because named scanning engines/policy mechanisms are undeclared in code rather than optional implementation details.
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
checkov -f tfplan.json --framework terraform_plan
# Skip specific checks
checkov -d ./terraform/ --skip-check CKV_AWS_145
# List all checks
checkov --list --framework terraform | grep CKV_AWS
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
checkov -f tfplan.json --framework terraform_plan
# Skip specific checks
checkov -d ./terraform/ --skip-check CKV_AWS_145
# List all checks
checkov --list --framework terraform | grep CKV_AWS
The skill clearly includes shell commands and writes output files (for example redirecting scan results to JSON/SARIF files), but it does not declare any tool scope such as allowed-tools or permissions. That creates an execution-safety gap: an agent may be granted broader shell or file-write capability than reviewers expect, increasing the risk of unintended command execution or repository modification when the skill is invoked.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
def run_checkov(terraform_dir, output_format="json"):
"""Run Checkov static analysis on Terraform code."""
cmd = ["checkov", "-d", terraform_dir, "--framework", "terraform", "--output", output_format, "--compact"]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=120)
if output_format == "json":
try:
return json.loads(result.stdout)
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
def run_checkov(terraform_dir, output_format="json"):
"""Run Checkov static analysis on Terraform code."""
cmd = ["checkov", "-d", terraform_dir, "--framework", "terraform", "--output", output_format, "--compact"]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=120)
if output_format == "json":
try:
return json.loads(result.stdout)
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
def run_checkov(terraform_dir, output_format="json"):
"""Run Checkov static analysis on Terraform code."""
cmd = ["checkov", "-d", terraform_dir, "--framework", "terraform", "--output", output_format, "--compact"]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=120)
if output_format == "json":
try:
return json.loads(result.stdout)
No suspicious patterns detected.