pentest — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited pentest (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are in AUTONOMOUS MODE. Do NOT ask questions. Hunt for exploitable vulnerabilities methodically.
TARGET: $ARGUMENTS
If no arguments provided, perform a full code-level penetration test of the project in the current working directory. If arguments specify a scope (e.g., "auth module", "API routes"), focus the analysis on that area.
============================================================ PHASE 0: RECONNAISSANCE ============================================================
Map the application's attack surface:
TECH STACK:
ROUTE INVENTORY:
DATA FLOW MAPPING:
Record the full attack surface map before beginning targeted analysis.
============================================================ PHASE 1: SQL / NOSQL INJECTION ============================================================
Hunt for injection points in database interactions:
SQL INJECTION:
"SELECT * FROM " + table SELECT * FROM ${table} `"SELECT * FROM %s" % tableNOSQL INJECTION:
$where, $regex, $gt, $ne with user inputJSON.parse(userInput) in queriesFor each finding:
============================================================ PHASE 2: CROSS-SITE SCRIPTING (XSS) ============================================================
Hunt for XSS vectors:
REFLECTED XSS:
STORED XSS:
DOM-BASED XSS:
document.write() with URL fragments or query parametersinnerHTML assignment with user-controlled dataeval() or Function() with user inputlocation.href / window.open() with user-controlled URLs.html() with unescaped dataTEMPLATE INJECTION:
dangerouslySetInnerHTML, v-html, [innerHTML], {!! !!}<%- %> (EJS), | safe (Jinja2), {{{ }}} (Handlebars)For each finding:
<script>alert(1)</script> or context-specific payload============================================================ PHASE 3: AUTHENTICATION BYPASS ============================================================
Hunt for authentication weaknesses:
MISSING AUTH:
AUTH LOGIC FLAWS:
CREDENTIAL ATTACKS:
For each finding:
============================================================ PHASE 4: AUTHORIZATION FLAWS ============================================================
Hunt for privilege escalation:
HORIZONTAL PRIVILEGE ESCALATION:
findById(req.params.id) without where: { userId: req.user.id }VERTICAL PRIVILEGE ESCALATION:
MASS ASSIGNMENT:
Model.update(req.body)role, isAdmin, balance via API requestFor each finding:
============================================================ PHASE 5: PATH TRAVERSAL AND FILE INCLUSION ============================================================
Hunt for file system attacks:
PATH TRAVERSAL:
fs.readFile(), open(), File() without path sanitizationpath.join(baseDir, userInput) without ../ preventionFILE UPLOAD:
../ or special chars)LOCAL FILE INCLUSION:
require() or import() with user inputFor each finding:
../../etc/passwd or equivalent payload============================================================ PHASE 6: COMMAND INJECTION ============================================================
Hunt for command injection:
DIRECT INJECTION:
child_process.exec() with user input: exec("convert " + filename)os.system(), subprocess.run(shell=True) with user argumentsRuntime.exec() with unsanitized parametersINDIRECT INJECTION:
For each finding:
; cat /etc/passwd or $(whoami) payload============================================================ PHASE 7: CSRF AND REQUEST FORGERY ============================================================
Hunt for CSRF vulnerabilities:
MISSING CSRF PROTECTION:
SameSite cookie attributeSSRF:
OPEN REDIRECTS:
?next= or ?redirect=) without allowlistFor each finding:
============================================================ PHASE 8: SECRETS AND CREDENTIALS ============================================================
Hunt for hardcoded secrets:
PATTERNS TO SEARCH:
[A-Za-z0-9_-]{20,} near key-related variablesAKIA[0-9A-Z]{16}-----BEGIN (RSA |EC |)PRIVATE KEY-----CHECK CONFIGURATION:
.env files committed (not in .gitignore)docker-compose.yml (not using Docker secrets)For each finding:
============================================================ PHASE 9: INSECURE DESERIALIZATION ============================================================
Hunt for deserialization attacks:
JSON.parse() on untrusted input used to construct queries or commandspickle.loads() on user-supplied data (Python)yaml.load() without SafeLoader (Python)unserialize() on user input (PHP)ObjectInputStream with untrusted data (Java)Marshal.load() on untrusted data (Ruby)For each finding:
============================================================ SELF-HEALING VALIDATION (max 2 iterations) ============================================================
After producing the security analysis, validate thoroughness:
IF VALIDATION FAILS:
============================================================ OUTPUT ============================================================
Project: [name] Stack: [detected technologies] Scope: [full project or specified scope] Date: [date]
| Category | Critical | High | Medium | Low |
|---|---|---|---|---|
| Injection (SQL/NoSQL) | N | N | N | N |
| XSS | N | N | N | N |
| Auth Bypass | N | N | N | N |
| Authorization Flaws | N | N | N | N |
| Path Traversal | N | N | N | N |
| Command Injection | N | N | N | N |
| CSRF/SSRF | N | N | N | N |
| Hardcoded Secrets | N | N | N | N |
| Insecure Deserialization | N | N | N | N |
| Total | N | N | N | N |
For each finding, in severity order:
#### [SEVERITY] — [Finding Title]
path/to/file.ts:42 [Example exploit payload or steps] [Code showing the remediation][Ordered list: Critical findings first, with effort estimates]
============================================================ NEXT STEPS ============================================================
After reviewing the pentest report:
/owasp for a systematic OWASP Top 10 compliance check."/encryption to address cryptographic weaknesses."/dependency-scan to fix vulnerable component findings."/secure after remediation to verify the security posture improved."============================================================ SELF-EVOLUTION TELEMETRY ============================================================
After producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
~/.claude/projects/skill-telemetry.md in that memory directoryEntry format:
### /pentest — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.
============================================================ DO NOT ============================================================
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.