ai-ml-attacks
This skill should be used when the user asks about "AI security", "ML pipeline attacks", "prompt injection", "model…
This skill should be used when the user asks about "logging failures", "log injection", "insufficient logging", "audit logging", "security logging", "CWE-117", or needs to find logging-related vulnerabilities during whitebox security review.
Claude Code
$ npx -y skills add allsmog/vuln-scout --skill logging-failures --agent claude-code
Codex
$ npx skills add allsmog/vuln-scout --skill logging-failures -a codex -y
Cursor
$ npx skills add allsmog/vuln-scout --skill logging-failures -a cursor -y
Gemini CLI
$ npx skills add allsmog/vuln-scout --skill logging-failures -a gemini-cli -y
GitHub Copilot
$ npx skills add allsmog/vuln-scout --skill logging-failures -a github-copilot -y
OpenCode
$ npx skills add allsmog/vuln-scout --skill logging-failures -a opencode -y
Windsurf
$ npx skills add allsmog/vuln-scout --skill logging-failures -a windsurf -y
name: Logging Failures description: This skill should be used when the user asks about "logging failures", "log injection", "insufficient logging", "audit logging", "security logging", "CWE-117", or needs to find logging-related vulnerabilities during whitebox security review. version: 1.0.0
Provide detection patterns for logging vulnerabilities including log injection, insufficient logging of security events, secrets in logs, and log tampering vulnerabilities.
**Category**: A09 - Security Logging & Alerting Failures
**CWEs**:
Activate this skill when:
---
Log injection occurs when user-controlled input is written to logs without sanitization, allowing attackers to inject fake log entries or manipulate log output.
# String concatenation in logs
grep -rniE "logging\.(info|debug|error|warn).*\+|logger\.(info|debug|error|warn).*\+" --include="*.py"
# f-string/format in logs with user input
grep -rniE "logging\.(info|debug|error|warn).*f['\"]|logger\..*\.format\(" --include="*.py"**Vulnerable**:
# VULNERABLE: User input directly in log
logger.info(f"User login: {request.form['username']}") # Can inject newlines**Secure**:
# SAFE: Structured logging
logger.info("User login", extra={"username": sanitize(username)})# String concatenation in logs grep -rniE "log\.(info|debug|error|warn).*\+|logger\.(info|debug|error|warn).*\+" --include="*.java" # Format with user input grep -rniE "String\.format.*log|log.*String\.format" --include="*.java"
**Vulnerable**:
// VULNERABLE: Direct concatenation
logger.info("User login: " + username); // Can inject newlines**Secure**:
// SAFE: Parameterized logging
logger.info("User login: {}", sanitize(username));# Printf-style logging with user input grep -rniE "log\.Printf|log\.Print.*\+" --include="*.go" # Zap/logrus with user input grep -rniE "zap\.String.*request|logrus\.WithField.*request" --include="*.go"
**Vulnerable**:
// VULNERABLE: Direct formatting
log.Printf("User login: %s", userInput) // Can inject newlines**Secure**:
// SAFE: Structured logging
logger.Info("user login", zap.String("username", sanitize(username)))# Console/logger with concatenation grep -rniE "console\.(log|info|error|warn).*\+|logger\.(log|info|error|warn).*\+" --include="*.ts"
# error_log with user input grep -rniE "error_log.*\$_|syslog.*\$_|log.*\$_(GET|POST|REQUEST)" --include="*.php"
# Inject fake log entry username: legitimate_user\n[ERROR] Admin password changed by attacker # Inject multiple lines input: line1\n[INFO] Fake entry\n[DEBUG] More fake entries # ANSI escape codes (terminal injection) input: \x1b[2J\x1b[1;1H # Clear terminal
---
Missing logs for security-critical events prevents detection of attacks and incident response.
| Event Category | Specific Events | |----------------|-----------------| | **Authentication** | Login success/failure, logout, password change | | **Authorization** | Access denied, privilege escalation attempts | | **Input Validation** | Rejected/suspicious input | | **Session** | Session creation, destruction, timeout | | **Data Access** | Sensitive data read/write/delete | | **Configuration** | Settings changes, feature toggles | | **Errors** | Exceptions, failures (without stack traces) |
# Find auth functions without logging
grep -rniE "def (login|authenticate|authorize|check_permission)" --include="*.py" -A 10 | grep -v "log\."
# Find exception handlers without logging
grep -rniE "except.*:|catch\s*\(" --include="*.py" --include="*.java" -A 5 | grep -v "log\|logger"
# Find permission checks without logging
grep -rniE "has_permission|is_admin|check_role" --include="*.go" --include="*.py" --include="*.java" -A 5 | grep -v "log"# Authentication logging
grep -rniE "login|authenticate|logout" --include="*.go" --include="*.py" --include="*.java" --include="*.ts" --include="*.php" | xargs -I {} sh -c 'grep -l "log" {} || echo "MISSING: {}"'
# Failed access logging
grep -rniE "forbidden|unauthorized|access.*denied" --include="*.go" --include="*.py" --include="*.java" --include="*.ts" --include="*.php"
# Data modification logging
grep -rniE "delete|update|insert" --include="*.go" --include="*.py" --include="*.java" --include="*.ts" --include="*.php" | xargs -I {} sh -c 'grep -l "log\|audit" {} || echo "MISSING: {}"'---
Logging sensitive data (passwords, tokens, API keys) exposes them to anyone with log access.
# Password in logs grep -rniE "log.*(password|passwd|pwd|secret|token|api_key|apikey|credential)" --include="*.go" --include="*.py" --include="*.java" --include="*.ts" --include="*.php" # Request body logging (may contain secrets) grep -rniE "log.*request\.body|log.*req\.body|log.*getBody" --include="*.go" --include="*.py" --include="*.java" --include="*.ts" --include="*.php" # Full object logging grep -rniE "log.*user\)|log.*%v.*user|log.*JSON\.stringify" --include="*.go" --include="*.py" --include="*.java" --include="*.ts" --include="*.php"
AI-powered whitebox penetration testing plugin for Claude Code. 9 languages, 22 skills, 7 autonomous agents. STRIDE threat modeling, OWASP 2025 coverage, polyglot monorepo support.
This skill should be used when the user asks about "AI security", "ML pipeline attacks", "prompt injection", "model…
This skill should be used when the user asks about "business logic", "workflow vulnerability", "trust boundary", "state machine",…
This skill should be used when the user asks about "cache poisoning", "web cache deception", "CDN cache", "proxy cache", "nginx…
This skill should be used when the user asks about "cloud security", "AWS security", "GCP security", "Azure security",…
This skill should be used when the user asks about "compliance mapping", "PCI-DSS", "HIPAA", "SOC 2", "NIST CSF", "regulatory…
This skill should be used when the user asks about "Code Property Graph", "CPG analysis", "Joern queries", "CPGQL", "data flow…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…