Eresus remediator
Production-ready AI AppSec skills for SAST, threat modeling, remediation, PR security review, and serialization abuse analysis.
npx -y skills add EresusSecurity/appsec-skills --skill eresus-remediatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Security remediation skill for fixing confirmed or likely SAST findings in source code. Trigger when the user asks to: "fix a vulnerability", "patch this security bug", "remediate SAST findings", "harden this endpoint", "make this auth flow safe", or wants code changes that remove a confirmed security issue while preserving intended behavior. Best used alongside eresus-sast-scanner.
SKILL.md
4.8 KB, as published. Nobody here has run it
SAST Remediation
Purpose
Turn confirmed or likely security findings into safe, minimal, production-ready code changes. Prefer root-cause fixes over cosmetic mitigations, preserve legitimate behavior, and reduce the chance of regressions or bypasses.
Inputs
This skill works best when at least one of the following is available:
- a finding from
eresus-sast-scanner - a security review comment or PR thread
- a vulnerable file/function/endpoint
- a proof-of-concept payload or attack path
If eresus-sast-scanner is installed, load the matching vulnerability knowledge file(s) from its
references/ directory before patching.
Workflow
Step 1: Reconstruct the Vulnerability Path
Before editing code, confirm:
- the attacker-controlled source
- the transformation path
- the vulnerable sink
- the intended business behavior that must still work after the fix
Do not patch from the label alone. Patch the actual code path.
Step 2: Choose the Right Fix Layer
Prefer the highest-leverage fix that closes the whole class of issue:
| Problem Type | Preferred Fix |
|---|---|
| SQL / NoSQL injection | Parameterization, safe query builders, strict allowlists |
| XSS | Context-specific output encoding or safe templating APIs |
| SSRF | Destination allowlists, URL parser validation, egress restrictions |
| Path traversal | Canonicalization plus base-directory enforcement |
| Auth / IDOR | Server-side authorization at object/action boundary |
| CSRF | Framework-native CSRF defense, same-site cookies, token checks |
| File upload | Type/content validation, non-webroot storage, random filenames |
| Serialization / deserialization | Explicit DTOs, allowlisted types, safe parser settings, integrity checks |
| Weak crypto | Modern primitives, strong secrets, secure randomness |
| Race conditions | Atomic operations, locking, compare-and-set, transaction boundaries |
Fix at the sink when possible, but move the fix earlier if many sinks share the same unsafe input path.
Step 3: Implement a Minimal, Safe Patch
While patching:
- preserve public API behavior unless the insecure behavior itself must change
- prefer framework-native security features over custom regex or denylist logic
- keep validation rules explicit and auditable
- update adjacent code when partial fixes would leave equivalent bypasses
- add concise comments only when the security reason is otherwise non-obvious
Step 4: Add Verification
Add or update tests when the repo supports them. Cover both:
- the blocked attack path
- the expected legitimate flow
If tests are not practical, still perform a manual reasoning pass that explains why the taint path is now broken.
Step 5: Re-Review the Fix
Run a short post-fix check:
- Can attacker-controlled data still reach the same sink?
- Did the patch move the problem instead of removing it?
- Does sanitization match the exact output context?
- Did the change accidentally create auth, compatibility, or logging regressions?
Step 6: Report the Remediation
Summarize:
- what was vulnerable
- what changed
- why the new control is effective
- what residual risk or rollout note remains
Remediation Guardrails
- Do not silence findings with comments, feature flags, or dead-code moves unless the execution path is truly removed.
- Do not replace parameterization with string escaping for query sinks.
- Do not trust client-side validation as the primary fix for a server-side issue.
- Do not add broad denylists when a precise allowlist or safer API exists.
- Do not "fix" IDOR by hiding identifiers in the UI; enforce authorization on the server.
- Do not fix SSRF with substring checks alone; parse and validate the normalized destination.
- Do not keep weak password hashing for backward compatibility without a migration or rehash plan.
- Do not claim a fix is complete if equivalent sibling endpoints remain exploitable.
Output Format
When reporting the remediation, use:
# Security Remediation Summary
## Finding
<short description of the original issue>
## Root Cause
<why tainted or untrusted data reached a dangerous operation>
## Fix
<what code changed and which control now blocks exploitation>
## Validation
<tests added, reasoning performed, or manual verification steps>
## Residual Risk
<migration note, rollout concern, or "none identified">