web-exploit-triage — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited web-exploit-triage (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Scope-only discipline: this skill classifies and assesses impact at pattern level. Ready-to-run exploits against production targets without explicit RoE authorization do not belong here. When a PoC is needed, build it in your own lab or in a customer-provided sandbox, not against live infra.
This skill sits between detection (what did you see?) and remediation (how do you fix it?). It classifies a web vuln candidate into an attack class, verifies exploit assumptions at pattern level, estimates impact, and hands off to the framework skill that delivers the fix.
Triggers on:
recon-agent (hypothesis candidate), dast-workflow (scanner output), or security-review (unclear-is-this-exploitable).payload-crafter, exploit-chain. This skill verifies whether something is exploitable; those build concrete exploits.ad-attacks.cve-triage. Overlap when a dep vuln is a web class (e.g. Jackson deserialization); this skill classifies, that one weighs fix priority.django-security, spring-security, etc.) or secure-coding.api-security.forensics-assist.pentest-reporter.Six phases. Phase 2 is the heart: class-specific triage per vuln type. The other phases are the wrapper.
Every triage starts with five facts:
If you cannot answer these five, you are not yet doing triage — you are doing recon. Hand back to recon-agent or ask the caller for more context.
The common web vuln classes this skill covers. For each: what to recognize, how to verify at pattern level (do not weaponize), and which compensating check shapes impact.
JWT flaws — CWE-347 and variants:
alg: none accepted. Verify via a jwt.io-style decode or jq on base64 chunks. If the server accepts a token with alg: none: blocker candidate.kid header injection (directory traversal or SQL injection via kid → key lookup). Check whether the kid field flows directly into a file path or query.hashcat or jwt_tool — in your own lab, not in production.Remediation handoff: api-security phase 2, spring-security phase 4 for Java stacks.
Deserialization — CWE-502:
ObjectInputStream, Python pickle.loads, PHP unserialize, Ruby Marshal.load, .NET BinaryFormatter, Node node-serialize. Check the request body for serialized formats (magic bytes \xac\xed for Java, gASV base64-pickle).{"simple": "value"}-shaped) and see if it is parsed without schema validation. That is the signal, not an RCE payload.Remediation handoff: secure-coding phase 5, framework-specific skills.
Prototype pollution — CWE-1321, JavaScript-specific:
{ "__proto__": { "isAdmin": true } } or {"constructor": {"prototype": {"isAdmin": true}}} in the JSON body. See whether a subsequent request behaves as if the prototype injection has been applied.exploit-chain skill looks for the gadget path to impact.cve-triage.Remediation: input validation with a JSON schema that rejects __proto__/constructor/prototype; Object.create(null) for untrusted data; Maps instead of objects for lookup tables.
OAuth 2.0 / OIDC misconfigs:
redirect_uri registration (https://*.example.com), path traversal in redirect (https://example.com/../attacker.com), fragment appending, URL-parsing differences between authorization server and client.Remediation handoff: api-security phase 2 (implementation).
CSRF and CORS misconfigs:
Access-Control-Allow-Origin reflection (every Origin echoed back), wildcard + credentials (browsers block; misconfig signal), null-origin accepted (sandboxed iframes, file:// requests).DOM XSS and client-side injection:
innerHTML, document.write, eval, setTimeout(string), location.href with user input, postMessage handlers without origin check.dangerouslySetInnerHTML (React), v-html (Vue), [innerHTML] (Angular).SSRF — see api-security phase 5 for the extended treatment. Triage level: check whether a URL field in the request determines the outbound call; in that case the SSRF class is present.
Per confirmed class: what can an attacker achieve? Qualitative, no CVSS here (that comes in pentest-reporter).
Compensating controls that lower impact: a WAF rule blocking the pattern, strict input validation cutting off the vector path, network segmentation limiting reachability. Document each one — otherwise the claim is not supported.
When a PoC is needed (for communication with developers, for a pentest-reporter finding, for retest):
<img src=x onerror=alert(1)>, {"__proto__":{"x":1}}, a benign pickle object) versus weaponized (shell-spawning, data exfil). Default: pattern. Weaponized only in a lab.A blue team receiving your PoC must be able to repeat it without your help and without data impact.
secure-coding.cve-triage.api-security.pentest-reporter for final CVSS scoring and report inclusion.Layer 1: scope (every finding within RoE, no scope creep via "I also found this"?), assumptions (exploitability shown at pattern level, not just theoretical?), gaps (auth context verified, compensating controls checked?). Layer 2: CWE IDs are real (not invented), CVE references in findings verified via NVD, no ready-to-run version-specific exploits in the report against production systems, PoCs at pattern level unless lab context is explicit.
Web exploit triage — <target / finding-ID>
RoE check: <in scope | out of scope — stopped>
Auth context: <pre-auth | auth-gated (scope)>
Layer: <client | server | infra>
Class classification:
Primary: <JWT / deserialization / prototype-pollution / OAuth / CSRF / DOM-XSS / SSRF / ...>
Secondary: <chain candidates if any>
CWE: <N + possibly more>
Verification:
Pattern test: <method + result, pattern level>
Compensating: <WAF rule / input val / segmentation — effect on impact>
Weaponized?: <no, pattern level confirmed | yes in lab, not in report>
Impact:
Severity: <blocker | high | medium | low>
Rationale: <1–3 sentences>
PoC:
Available: <yes/no>
PoC scope: <lab | customer sandbox | n/a>
Reproduction: <numbered steps, redacted>
Remediation handoff:
Skill(s): <framework skill / secure-coding / api-security / cve-triage>
Retest criteria: <what you must see to confirm the fix works>
Verification-loop: ...~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.