Skip to content

Security: dawei008/combo

Security

SECURITY.md

Security Review Report

Last reviewed: 2026-01-25 Reviewed by: Claude (via /security-review skill) Status: ✅ PASSED

Summary

The combo skill codebase has been reviewed for security vulnerabilities using the security-review skill checklist. No security issues were found.

Checklist Results

Category Status Notes
Secrets Management ✅ Pass No hardcoded secrets; tokens from env vars
Input Validation ✅ Pass CLI args via argparse; no unsafe input()
Command Injection ✅ Pass subprocess uses list args, not shell=True
Code Execution ✅ Pass No eval()/exec()/compile()
Path Traversal ✅ Pass Paths restricted to ~/.claude/
Unsafe Deserialization ✅ Pass No pickle/yaml.unsafe_load
Network Security ✅ Pass All requests have timeouts (5-30s)
File Operations ✅ Pass Limited to ~/.claude/skills/ directory

Detailed Findings

1. Secrets Management ✅

# Good: Token from environment variables
token = os.environ.get("GITHUB_TOKEN") or os.environ.get("GH_TOKEN")

# Good: Fallback to gh CLI (secure credential store)
result = subprocess.run(["gh", "auth", "token"], ...)

No hardcoded API keys, passwords, or tokens found.

2. Subprocess Usage ✅

All subprocess calls use list arguments (not shell strings):

# Good: List arguments prevent shell injection
subprocess.run(["gh", "auth", "token"], capture_output=True, timeout=5)
subprocess.run([sys.executable, str(script_path)] + args)

No shell=True found anywhere in the codebase.

3. Network Requests ✅

All HTTP requests include timeouts to prevent hanging:

# Good: Timeouts prevent indefinite blocking
urllib.request.urlopen(req, timeout=10)
urllib.request.urlopen(req, timeout=30)

4. File System Access ✅

All file operations are restricted to the user's .claude directory:

# Good: Paths restricted to user directory
self.skills_dir = Path.home() / ".claude" / "skills"
self.cache_dir = Path.home() / ".claude" / "cache" / "skill-registry"

No path traversal (../) patterns found.

5. Dependencies ✅

The codebase uses only Python standard library modules:

  • argparse, json, os, re, shutil, subprocess
  • sys, tempfile, urllib.request, zipfile, pathlib
  • dataclasses, typing, datetime, enum, base64

No third-party dependencies = minimal supply chain risk.

Recommendations

  1. Consider adding input sanitization for skill names to prevent edge cases
  2. Add rate limiting awareness when making GitHub API calls
  3. Document security model for users installing third-party skills

How to Re-run This Review

# Use the security-review skill
/security-review /home/ubuntu/.claude/skills/combo

This report was generated using the combo skill's delegation principle, routing to the /security-review skill for systematic analysis.

There aren’t any published security advisories