Not in the top 1,000 by GitHub stars
songjianyang/xss-audit
Static XSS audit skill with 14 layers of checks for React, TypeScript, and JavaScript projects.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
1cd6fc29de8a → 1cd6fc29de8a
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 1cd6fc29de8a
No earlier version was observed for comparison.
Heat
4.5- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
xss-audit
When your agent uses it
Comprehensive XSS vulnerability detection skill with 14 layers of checks for React/TypeScript/JavaScript codebases (static audit). Use when the user wants an in-depth XSS audit with broad static coverage, including SVG, MathML, CSS injection, markdown pipelines, mXSS/sanitizer bypass, JSON-in-script injection, URL validation bypass, and Trusted Types analysis. Outputs report to xss-audit-report.md. Triggers on requests like 'xss audit', 'deep xss audit', 'comprehensive xss scan', or 'advanced xss audit'.
What it loads into context
Frontmatter
125 tokensAlways available to the agent
SKILL.md
5,925 tokensWhen the skill is activated
Reference documents
2,297 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- CRITICAL EXECUTION RULES
- Search Strategy - 14 Layers (Execute Systematically)
- Data Flow Analysis - MANDATORY FOR EACH MATCH
- Critical Validation Checks
- 20-Point Mandatory Checklist
- Output Format
- High-Priority Review Signals
Files
.gitignoreasset190 bytesLICENSEasset1,079 bytesREADME.mddoc5,894 bytesSECURITY.mddoc1,176 bytesSKILL.mdcore26,430 bytesSKILL.mdcore26,430 bytesSKILL.mdcore26,430 bytesSKILL.mdcore26,430 bytesSKILL.mdcore26,430 bytesSKILL.mdcore26,430 bytesSKILL.mdcore26,430 bytesSKILL.mdcore26,430 bytesSKILL.mdcore26,430 bytesSKILL.mdcore26,430 bytesexamples/sample-report.mddoc3,454 bytes
Read SKILL.md
You are a senior frontend security auditor specializing in XSS vulnerability detection. Perform **comprehensive static analysis** WITHOUT modifying code.
> **Reality check**: No static checklist can guarantee complete coverage against all XSS variants (new browser APIs, framework abstractions, dynamic code paths, build-time transforms). This playbook improves coverage by enumerating **known sinks, sources, and execution contexts**, and by requiring **data-flow + sanitization verification** for every suspicious match. Combine static review with dynamic testing and defense-in-depth (CSP + Trusted Types); none of these measures guarantees complete protection on its own.
## CRITICAL EXECUTION RULES
**YOU MUST FOLLOW THESE RULES EXACTLY - NO EXCEPTIONS:**
1. **DO NOT SKIP ANY SEARCH CATEGORY** - Execute EVERY search pattern listed below within the defined audit scope
2. **READ EVERY RELEVANT MATCHING FILE** - Do not assume a file is safe based on filename alone. Define the audit scope and exclusions (dependencies, generated/minified code, binaries) before auditing, and record exclusions and unread files in the report
3. **TRACE DATA FLOW FOR EACH SUSPICIOUS MATCH** - Find where the data comes from and where it goes
4. **CHECK FOR SANITIZATION** - If you see a sink (innerHTML, window.open, href, etc.), you MUST verify if the input is validated/sanitized for the *correct context* (HTML/attribute/URL/JS/CSS)
5. **BE ESPECIALLY CAREFUL WITH**:
- `window.open(variable)` - MUST check attacker control and context-appropriate protocol validationView the complete source on GitHubSkills included
- xss-audit
Repository facts
- License
- MIT
- Created
- Oct 24, 2026
- Last pushed
- Oct 24, 2026
- Forks
- 149
- Open issues
- 1
- Project activity
- Active
Before you install
Instructions onlyAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 9 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 5 network referencesin 2 files: SKILL.md:53 README.md:16
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- No access to secrets
- No requests to vote in Hot
Show all 5 signals by file
README.md
- Network accessline 16
Researcher Leaderboard (quarterly Top 10) for four consecutive quarters — 2025 Q3 #4, Q4 #7, 2026 Q1 #6, Q2 #10 ([leaderboard](https://msrc.microsoft.com/leaderboard), [my profile](https://x.com/SecBoxer)). - Network accessline 18
([leaderboard](https://msrc.microsoft.com/leaderboard), [my profile](https://x.com/SecBoxer)).
SKILL.md
- Network accessline 53
**URL validation anti-patterns (MUST audit for each validation found):** 1. **Hostname-only checks are insufficient for navigation sinks**: `new URL('javascript://trusted.com/%0aalert(1)').hostname` evaluates to `trusted.com`. Protocol and - Network accessline 54
1. **Hostname-only checks are insufficient for navigation sinks**: `new URL('javascript://trusted.com/%0aalert(1)').hostname` evaluates to `trusted.com`. Protocol and the eventual sink must also be checked; do not assign severity from the v - Network accessline 55
2. **Substring checks**: `url.includes('trusted.com')` / `url.startsWith('https://trusted.com')` - bypassable via `https://trusted.com.evil.com`, `https://trusted.com@evil.com`, `https://evil.com/?q=trusted.com`
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Signal confidence: 5 facts
- Network access in prose of documentationREADME.md:16Low confidence
- Network access in prose of documentationREADME.md:18Low confidence
- Network access in prose of the SKILL.mdSKILL.md:53Low confidence
- Network access in prose of the SKILL.mdSKILL.md:54Low confidence
- Network access in prose of the SKILL.mdSKILL.md:55Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.