Install
$ agentstack add skill-azzygoatcoder-claude-useful-skills-security-fix-skill ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Security fix workflow
This skill guides the systematic remediation of security audit findings, grouped by priority level (P1–P4). The process was refined across 16 real-world findings in a Python web application project.
Step 1: Load the audit report
Read the audit document (typically docs/SECURITY_AUDIT.md). Extract:
- Each finding's ID, severity, affected file, line number, and description
- The remediation code or instructions provided
- The priority rating (P1 = fix immediately, P4 = address when convenient)
Present a summary table to the user showing severity distribution and file-level impact, then ask which priority level to start with.
Step 2: Fix one priority level at a time
For each finding in the current priority:
- Read the affected code at the specified file and line range
- Apply the remediation from the audit doc — prefer minimal, targeted
edits that don't change behavior
- Verify the fix by re-reading the changed lines
- Track progress: "3 of 5 P1 fixes applied"
Step 3: Test after each priority level
After completing all fixes at a priority level:
pytest tests/ -x -q # or the project's test command
If any tests fail, investigate before proceeding. The most common failure mode is monkeypatch targets changing when code moves between modules.
Step 4: Commit the batch
Commit all fixes at the current priority level together:
git add -u
git commit -m "fix: security — (P SSRF-1 PATH-1 AUTH-1)"
Use conventional commit format. Include the finding IDs in the commit message body so they are traceable. Push when requested by the user.
Step 5: Mark-fixed and move to next priority
After committing each priority batch:
- Run
/reaudit mark-fixedfor each finding in the batch. This updates
the report's status annotations without re-reading files.
- Repeat steps 2–5 for the next priority level. Typical execution order:
P1 (5 findings, ~15 min) → P2 (4 findings, ~10 min) → P3 (3 findings, ~10 min) → P4 (4 findings, ~10 min)
Step 6: Final verification
After all priorities are committed and marked, verify the state:
- Run
/reaudit statusto confirm all findings arefixedordeferred - If any findings remain
openornot-fixed, ask the user how to handle - Optionally run a targeted
/reauditon the changed files only to double-check
no regressions were introduced
Common fix patterns
These patterns recurred across the audit and can be applied quickly:
Path traversal — resolve + isrelativeto guard (lstrip only blocks absolute paths, not ../):
file_path = (STATIC_DIR / path.lstrip("/")).resolve()
if not file_path.is_relative_to(STATIC_DIR.resolve()):
return 404
CORS over-permission — remove Access-Control-Allow-Origin: *; add token/cookie auth instead.
Command injection — replace shell=True with native APIs (os.startfile, webbrowser.open) or pass data through environment variables instead of string interpolation.
XSS (innerHTML) — replace with textContent for user-controlled data; HTML-escape before innerHTML when formatting is needed.
SSRF — validate URLs against an allowlist of known hosts before making outbound requests.
Plaintext credentials — strip sensitive env vars before spawning subprocesses; add os.chmod(path, 0o600) on Unix after writing credential files.
Temp file cleanup — wrap tempfile.mkdtemp() / NamedTemporaryFile with atexit.register() for cleanup even on crash paths.
Edge cases
- Server-controlled crypto (e.g., PKCS1v15): can't change unilaterally —
add a comment documenting the constraint
- Structural fixes (TLS, keychain): acknowledge as deferred, document in
the re-audit
- Findings in files the user doesn't own: flag as "out of scope" but
document
- Re-audit after fixes: run
/reaudit statusto confirm all findings are
resolved. The status annotations (``) track fix state per finding, eliminating the need to manually update line numbers in the report.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Azzygoatcoder
- Source: Azzygoatcoder/claude-useful-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.