Not in the top 1,000 by GitHub stars

ShieldNet-360/secure-vibe

SecureVibe — prevention-first security for AI-written code. Signed SKILL.md knowledge that makes AI coding assistants write secure code at generation time, plus a deterministic CI gate. Offline · keyless · Ed25519-signed. By ShieldNet360.

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

dist/agent-skills/.agents/skills/api-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/auth-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/cicd-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/container-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/cors-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/crypto-misuse/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/database-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/deserialization-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/dynamic-verification/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/electron-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/error-handling-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/file-upload-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/frontend-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/graphql-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/iac-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/iam-best-practices/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/llm-app-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/logging-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/ml-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/mobile-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/protocol-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/saas-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/secret-detection/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/secure-code-review/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/security-regression-tests/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/serverless-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/ssrf-prevention/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/supply-chain-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/template-injection/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/threat-modeling/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/agent-skills/.agents/skills/websocket-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/api-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/auth-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/cicd-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/container-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/cors-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/crypto-misuse/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/database-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/deserialization-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/dynamic-verification/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/electron-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/error-handling-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/file-upload-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/frontend-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/graphql-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/iac-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/iam-best-practices/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/llm-app-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/logging-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/ml-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/mobile-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/protocol-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/saas-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/secret-detection/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/secure-code-review/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/security-regression-tests/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/serverless-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/ssrf-prevention/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/supply-chain-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/template-injection/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/threat-modeling/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

dist/claude-skills/.claude/skills/websocket-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/api-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/auth-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/cicd-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/container-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/cors-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/crypto-misuse/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/database-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/deserialization-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/dynamic-verification/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/electron-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/error-handling-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/file-upload-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/frontend-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/graphql-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/iac-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/iam-best-practices/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/llm-app-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/logging-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/ml-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/mobile-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/protocol-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/saas-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/secret-detection/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/secure-code-review/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/security-regression-tests/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/serverless-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/ssrf-prevention/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/supply-chain-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/template-injection/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/threat-modeling/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

skills/websocket-security/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

eaba88102d91 → eaba88102d91

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → eaba88102d91

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit eaba88102d91df65a9aa6397e8507c315c018f5e

git clone --filter=blob:none --no-checkout https://github.com/ShieldNet-360/secure-vibe.git .hotskills/shieldnet-360-secure-vibe && git -C .hotskills/shieldnet-360-secure-vibe checkout --detach eaba88102d91df65a9aa6397e8507c315c018f5e # Copy each selected skill directory from .hotskills/shieldnet-360-secure-vibe into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/ShieldNet-360/secure-vibe.git .hotskills/shieldnet-360-secure-vibe && git -C .hotskills/shieldnet-360-secure-vibe checkout --detach eaba88102d91df65a9aa6397e8507c315c018f5e # Copy each selected skill directory from .hotskills/shieldnet-360-secure-vibe into .agents/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/ShieldNet-360/secure-vibe.git .hotskills/shieldnet-360-secure-vibe && git -C .hotskills/shieldnet-360-secure-vibe checkout --detach eaba88102d91df65a9aa6397e8507c315c018f5e # Copy each selected skill directory from .hotskills/shieldnet-360-secure-vibe into .cursor/skills/<skill-name>/
23GitHub stars
0stars in 7 days
93skills in this repository
0commits in 30 days

Heat

0.3
  • 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

Oct 25, 2026Oct 27, 202623

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

api-security

When your agent uses it

OWASP API Top 10 for HTTP, GraphQL, and gRPC endpoints: input validation, route rate limiting, mass assignment, response caching, and gateway-versus-service control placement. Use when generating or reviewing HTTP handlers, GraphQL resolvers, gRPC service methods, or any API endpoint change.

What it loads into context

Frontmatter

70 tokens

Always available to the agent

SKILL.md

986 tokens

When the skill is activated

Reference documents

522 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. ALWAYS
  2. NEVER
  3. KNOWN FALSE POSITIVES
  4. Reference files

Files

  • SKILL.mdcore4,615 bytes
  • SKILL.mdcore4,615 bytes
  • metadata.jsonasset1,105 bytes
  • references/verifying-findings.mddoc2,236 bytes
Read SKILL.md

<!-- Native skill bundle for agent-skills (cross-tool convention). Generated by `secure-vibe dev regenerate`. -->
<!-- Do not edit by hand; the source of truth is skills/api-security/SKILL.md. -->

# API Security

OWASP API Top 10 for HTTP, GraphQL, and gRPC endpoints: input validation, route rate limiting, mass assignment, response caching, and gateway-versus-service control placement. Use when generating or reviewing HTTP handlers, GraphQL resolvers, gRPC service methods, or any API endpoint change.

## ALWAYS

- Require authentication on every non-public endpoint. Default to authenticated; opt out for genuinely public routes by explicit annotation.
- Consult `auth-security` for **who the caller is and what they may touch**. It owns the credential (algorithm pinning, expiry, lifetime, session, CSRF) and the permission (object-level BOLA/IDOR checks, multi-key routes, streaming subjects, function-level role gating). Any endpoint that reads or writes a resource by id needs it; this skill covers everything else about the endpoint.
- Validate all request inputs against an explicit schema (JSON Schema, Pydantic, Zod, validator/v10 struct tags). Reject early; never propagate untrusted input deeper.
- Enforce rate limits at the route level for authentication endpoints, password reset, and any expensive operation.
- Consult `error-handling-security` for what an error response may carry. It owns the boundary between what crosses to the client and what stays in the log, including presence-of-record disclosure (`User not found` vs `Invalid credentials`).
View the complete source on GitHub

Skills included

  • api-security
  • auth-security
  • cicd-security
  • container-security
  • cors-security
  • crypto-misuse
  • database-security
  • deserialization-security
  • dynamic-verification
  • electron-security
  • error-handling-security
  • file-upload-security
  • frontend-security
  • graphql-security
  • iac-security
  • iam-best-practices
  • llm-app-security
  • logging-security
  • ml-security
  • mobile-security
  • protocol-security
  • saas-security
  • secret-detection
  • secure-code-review
  • security-regression-tests
  • serverless-security
  • ssrf-prevention
  • supply-chain-security
  • template-injection
  • threat-modeling
  • websocket-security
  • api-security
  • auth-security
  • cicd-security
  • container-security
  • cors-security
  • crypto-misuse
  • database-security
  • deserialization-security
  • dynamic-verification
  • electron-security
  • error-handling-security
  • file-upload-security
  • frontend-security
  • graphql-security
  • iac-security
  • iam-best-practices
  • llm-app-security
  • logging-security
  • ml-security
  • mobile-security
  • protocol-security
  • saas-security
  • secret-detection
  • secure-code-review
  • security-regression-tests
  • serverless-security
  • ssrf-prevention
  • supply-chain-security
  • template-injection
  • threat-modeling
  • websocket-security

Repository facts

License
MIT
Created
Jul 1, 2026
Last pushed
Aug 14, 2026
Forks
0
Open issues
0
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 132 notes
  • dist/agent-skills/.agents/skills/api-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/auth-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/cicd-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/cicd-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/cicd-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/container-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/container-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/container-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/cors-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/crypto-misuse/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/database-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/deserialization-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/dynamic-verification/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/electron-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/error-handling-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/file-upload-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/frontend-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/frontend-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/graphql-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • dist/agent-skills/.agents/skills/iac-security/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 881 signals by file

dist/agent-skills/.agents/skills/cicd-security/SKILL.md

  • Dangerous shell operationline 27
    - `curl | bash` (or `wget -O- | sh`) any installer script in CI. The 2021 Codecov bash-uploader compromise exfiltrated env vars to an attacker for ~10 weeks because thousands of pipelines ran `bash <(curl https://codecov.io/bash)`. Always d
  • Network accessline 27
    - `curl | bash` (or `wget -O- | sh`) any installer script in CI. The 2021 Codecov bash-uploader compromise exfiltrated env vars to an attacker for ~10 weeks because thousands of pipelines ran `bash <(curl https://codecov.io/bash)`. Always d

dist/agent-skills/.agents/skills/cicd-security/references/verifying-findings.md

  • Network accessline 29
    | **Script injection** | Trace a `${{ github.event.* }}` value into a `run:` body and echo a marker to prove it executes | The marker executes | The value is passed through an environment variable first | | **Default-write permissions** | I
  • Network accessline 30
    | **Default-write permissions** | Inspect the run's `GITHUB_TOKEN` scopes | `write-all` | A top-level `permissions:` block scoped to `contents: read` | | **curl \| bash** | Read the installer step | A remote script piped straight to a shell
  • Dangerous shell operationline 31
    | **curl \| bash** | Read the installer step | A remote script piped straight to a shell | Downloaded, checksummed, then executed |
  • Network accessline 31
    | **curl \| bash** | Read the installer step | A remote script piped straight to a shell | Downloaded, checksummed, then executed |
  • Network accessline 53
    | A workflow using a floating tag (`@v1`, `@main`, `@latest`) | Gate fails | | A workflow with no top-level `permissions: contents: read` | Gate fails | | `curl \| bash` in a `run:` step | Gate fails |
  • Network accessline 54
    | A workflow with no top-level `permissions: contents: read` | Gate fails | | `curl \| bash` in a `run:` step | Gate fails | | A `pull_request_target` job that checks out the PR head with secrets in scope | Gate fails |
  • Dangerous shell operationline 55
    | `curl \| bash` in a `run:` step | Gate fails |
  • Network accessline 55
    | `curl \| bash` in a `run:` step | Gate fails |

dist/agent-skills/.agents/skills/container-security/SKILL.md

  • Dangerous shell operationline 21
    - Pin **apt** packages and clean lists in the same layer: `apt-get update && apt-get install -y --no-install-recommends pkg=1.2.3 && rm -rf /var/lib/apt/lists/*`. The `update` must be in that same `RUN` — without it there are no package lis
  • Network accessline 39
    - Run a tenant's container `privileged` on a host shared with other tenants, or attach tenant containers to a **shared external bridge network** — the first gives container-escape → co-tenant takeover, the second gives cross-tenant L3 reach
  • Network accessline 40
    - Embed secrets in image layers via `ENV`, `ARG`, `COPY`, or by `echo`-ing them to a file. Even if `--squash`'d, BuildKit cache and registry layers leak. - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — piping an unverified remote scri
  • Dangerous shell operationline 41
    - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — piping an unverified remote script to a shell is arbitrary remote code at build time. Download, verify a pinned SHA-256, then execute.
  • Network accessline 41
    - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — piping an unverified remote script to a shell is arbitrary remote code at build time. Download, verify a pinned SHA-256, then execute.
  • Network accessline 42
    - Use an **unversioned** tag as the final image base — `latest`, `stable`, or a bare variant like `python:slim` / `node:alpine`. Builds become non-reproducible and quietly pick up CVEs. The *versioned* variants (`python:3.12-slim`, `node:20
  • Network accessline 43
    - Use `ADD <url>` to fetch a remote resource **unverified**. Either `ADD --checksum=sha256:<hash> <url>` (Dockerfile frontend 1.6+), or `RUN curl --fail` plus an explicit checksum step, or vendor the artifact.

dist/agent-skills/.agents/skills/container-security/references/eol-base-images.md

  • Network accessline 40
    https://endoflife.date/api/<product>.json

dist/agent-skills/.agents/skills/container-security/references/verifying-findings.md

  • Network accessline 28
    | **Unpinned or EOL base** | Resolve the final `FROM` | A mutable tag (`latest`, `stable`, `slim`) or an end-of-life runtime | A `@sha256:` digest on a maintained runtime | | **Secrets in layers** | `docker history --no-trunc img`, or `dive
  • Network accessline 29
    | **Secrets in layers** | `docker history --no-trunc img`, or `dive` | A token visible in `ENV`, `ARG` or `COPY` | No credential in any layer | | **Remote script execution** | Read the `RUN` steps | `curl … \| sh` — an unverified remote scr
  • Dangerous shell operationline 30
    | **Remote script execution** | Read the `RUN` steps | `curl … \| sh` — an unverified remote script piped to a shell | Downloaded, verified against a pinned SHA-256, then executed |
  • Network accessline 30
    | **Remote script execution** | Read the `RUN` steps | `curl … \| sh` — an unverified remote script piped to a shell | Downloaded, verified against a pinned SHA-256, then executed |

dist/agent-skills/.agents/skills/cors-security/SKILL.md

  • Network accessline 15
    - For any non-public endpoint, allow origins from an explicit allowlist. `*` is correct only when the resource is intentionally public *and* cross-origin access never carries credentials. - When a cross-origin request carries credentials — 
  • Network accessline 16
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Network accessline 17
    - Compare origins by exact match on the **serialized** origin — scheme, host, and port, all three. Never substring, prefix, or suffix matching: `endsWith("example.com")` accepts `https://example.com.evil.com`, and an unescaped `.` in `^http

dist/agent-skills/.agents/skills/cors-security/references/verifying-findings.md

  • Network accessline 20
    | Class | Probe | Real hit | False positive | |---|---|---|---| | **Reflected origin** | `Origin: https://evil.example` | The response echoes `Access-Control-Allow-Origin: https://evil.example` **together with** `Access-Control-Allow-Creden
  • Network accessline 21
    |---|---|---|---| | **Reflected origin** | `Origin: https://evil.example` | The response echoes `Access-Control-Allow-Origin: https://evil.example` **together with** `Access-Control-Allow-Credentials: true` | No ACAO header, or a fixed trus
  • Network accessline 22
    | **Reflected origin** | `Origin: https://evil.example` | The response echoes `Access-Control-Allow-Origin: https://evil.example` **together with** `Access-Control-Allow-Credentials: true` | No ACAO header, or a fixed trusted origin returne
  • Network accessline 47
    | Input | Expected | |---|---| | `Origin: https://evil.example` with credentials | No reflected ACAO |
  • Network accessline 48
    |---|---| | `Origin: https://evil.example` with credentials | No reflected ACAO | | `Origin: null` with credentials | No reflected ACAO |
  • Network accessline 49
    | `Origin: https://evil.example` with credentials | No reflected ACAO |

dist/agent-skills/.agents/skills/crypto-misuse/SKILL.md

  • Network accessline 15
    - Use a maintained, widely reviewed cryptographic API — the platform's own (Node `crypto`, Java JCE, .NET `System.Security.Cryptography`, Go `crypto/*`) or a reputable third-party one (PyCA `cryptography`, `golang.org/x/crypto`, Bouncy Cast
  • Network accessline 16
    - Use a cryptographically secure RNG for anything security-relevant: Python `secrets.token_bytes` / `secrets.token_urlsafe`, JS `crypto.getRandomValues` / `crypto.randomBytes`, Go `crypto/rand.Read`, Java `SecureRandom`. - Hash passwords wi
  • Network accessline 17
    - Hash passwords with a password-specific KDF and a unique random salt per password. Prefer Argon2id; scrypt where appropriate; bcrypt for legacy compatibility; PBKDF2-HMAC-SHA-256 where FIPS-140 compliance is required. Take minimum paramet

dist/agent-skills/.agents/skills/deserialization-security/references/xml.md

  • Network accessline 18
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • Network accessline 19
    dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • Network accessline 20
    dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
  • Network accessline 21
    dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
  • Network accessline 22
    dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

dist/agent-skills/.agents/skills/electron-security/SKILL.md

  • Network accessline 42
    - Dev builds that load `http://localhost:<port>` with relaxed settings — these rules govern **release** builds; the finding is dev config that ships.
  • Network accessline 43
    - A custom protocol (`myapp://`) for OAuth callbacks is expected. The control is `state` / PKCE validation, not the scheme's existence. - `contextBridge`-exposed functions are intentional capabilities. Review what each one does and whether 
  • Network accessline 44
    - `contextBridge`-exposed functions are intentional capabilities. Review what each one does and whether it validates input, not the fact that a bridge exists. - `shell.openExternal` on a hard-coded `https://` constant, not user input. - A f
  • Network accessline 45
    - `shell.openExternal` on a hard-coded `https://` constant, not user input.

dist/agent-skills/.agents/skills/electron-security/references/electron-hardening.md

  • Access to secretsline 56
    [Credential-related source omitted]

dist/agent-skills/.agents/skills/electron-security/references/verifying-findings.md

  • Network accessline 41
    **Probe the release build, not the dev build.** Dev builds legitimately load over `http://localhost:<port>` with relaxed settings, so a probe against the dev
  • Network accessline 42
    `http://localhost:<port>` with relaxed settings, so a probe against the dev

dist/agent-skills/.agents/skills/frontend-security/references/browser-controls.md

  • Network accessline 24
    # host-allowlist policy — every same-origin script is trusted script-src 'self' https://cdn.example.com
  • Network accessline 25
    script-src 'self' https://cdn.example.com
  • Network accessline 43
    `upgrade-insecure-requests` is a migration aid for a site with legacy `http://`

dist/agent-skills/.agents/skills/iac-security/SKILL.md

  • Access to secretsline 26
    [Credential-related source omitted]

dist/agent-skills/.agents/skills/iac-security/references/backends-and-state.md

  • Network accessline 83
    # pinned to an immutable commit — the module cannot change under you module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=a1b2c3d4e5f6…"
  • Network accessline 84
    module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=a1b2c3d4e5f6…" }
  • Network accessline 85
    source = "git::https://github.com/org/modules.git//vpc?ref=a1b2c3d4e5f6…"
  • Network accessline 88
    # a tag can be moved; a branch changes on every push module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=v1.4.0"   # weaker
  • Network accessline 89
    module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=v1.4.0"   # weaker   source = "git::https://github.com/org/modules.git//vpc?ref=main"     # unpinned
  • Network accessline 90
    source = "git::https://github.com/org/modules.git//vpc?ref=v1.4.0"   # weaker
  • Network accessline 91
    source = "git::https://github.com/org/modules.git//vpc?ref=main"     # unpinned

dist/agent-skills/.agents/skills/mobile-security/SKILL.md

  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]

dist/agent-skills/.agents/skills/mobile-security/references/platform-specifics.md

  • Access to secretsline 123
    [Credential-related source omitted]

dist/agent-skills/.agents/skills/mobile-security/references/verifying-findings.md

  • Access to secretsline 12
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]

dist/agent-skills/.agents/skills/protocol-security/references/tls-configuration.md

  • Network accessline 87
    With `requests`, `verify=` takes a CA bundle path as well as a bool: `requests.get(url, verify="/etc/ssl/internal-ca.pem")`.
  • Network accessline 88
    `requests.get(url, verify="/etc/ssl/internal-ca.pem")`.

dist/agent-skills/.agents/skills/protocol-security/references/verifying-findings.md

  • Network accessline 24
    | **Downgrade / weak cipher** | `testssl.sh host:port`, or force a sub-1.2 handshake: `openssl s_client -connect host:port -tls1_1`, or `-cipher 'DES-CBC3-SHA'` | The weak handshake succeeds | A documented legacy-peer exception, isolated be
  • Network accessline 25
    | **Certificate validation** | Present an invalid, self-signed, or wrong-hostname certificate to the client | The client completes the connection | The client refuses it | | **Plaintext fallback / HSTS** | Request the `http://` scheme | `20
  • Network accessline 26
    | **Plaintext fallback / HSTS** | Request the `http://` scheme | `200` with no redirect, or no `Strict-Transport-Security` header on the HTTPS response | A public read-only endpoint, such as a status page, served over HTTP by design |

dist/agent-skills/.agents/skills/saas-security/references/vendor-specifics.md

  • Network accessline 49
    | Slack bot tokens | Requesting the full scope catalogue | Only the scopes you actually call | | Google Workspace OAuth | `admin.directory.user` when you do not write | `.../auth/admin.directory.user.readonly` | | Google Workspace OAuth | `
  • Network accessline 50
    | Google Workspace OAuth | `admin.directory.user` when you do not write | `.../auth/admin.directory.user.readonly` | | Google Workspace OAuth | `https://www.googleapis.com/auth/admin` (super admin) outside a tightly-controlled IT-owned auto
  • Network accessline 51
    | Google Workspace OAuth | `https://www.googleapis.com/auth/admin` (super admin) outside a tightly-controlled IT-owned automation | `admin.directory.*.readonly` |

dist/agent-skills/.agents/skills/secret-detection/SKILL.md

  • Access to secretsline 3
    [Credential-related source omitted]
  • Access to secretsline 11
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]

dist/agent-skills/.agents/skills/secret-detection/metadata.json

  • Access to secretsline 5
    [Credential-related source omitted]

dist/agent-skills/.agents/skills/security-regression-tests/SKILL.md

  • Network accessline 17
    - Assert the **effect**, not only the status code. A `403` proves the request was refused; it does not prove the write did not land somewhere else, that the record was not returned in a different shape, or that a queue message was not emitt
  • Network accessline 18
    - Seed the **fixtures the assertion depends on** before writing it. A cross-tenant test needs two principals and two owned resources, deterministically created — if both test users end up in the same tenant, the deny assertion is untestable
  • Network accessline 19
    - Make it **deterministic and offline**. Freeze the clock for expiry and TTL assertions, stub the HTTP client, dialer or resolver rather than reaching the network, fix random seeds, and avoid sleep-based timing assertions and state shared b

dist/agent-skills/.agents/skills/security-regression-tests/references/test-by-class.md

  • Network accessline 22
    | **Path traversal** | `../../etc/passwd`, an encoded separator, an absolute path | `400` / `404` | No read outside the base directory — assert on the resolved path, or stub the filesystem | | **Command injection** | `; id`, `$(id)`, `` `id
  • Network accessline 23
    | **Command injection** | `; id`, `$(id)`, `` `id` ``, a newline | Normal or rejected | Assert the subprocess was invoked with an **argv array** and the metacharacters arrived as one literal argument | | **SSRF** | `http://169.254.169.254/l
  • Network accessline 24
    | **SSRF** | `http://169.254.169.254/latest/meta-data/`, `http://127.0.0.1:6379/` | `400` | Stub the dialer or transport and assert **no outbound connection was attempted**. A `4xx` alone does not tell you the fetch was never made |
  • Network accessline 25
    | **XXE** | A document declaring an external entity or external DTD | Parse error or entity ignored | The entity's content is absent from the parsed result, and no outbound fetch was attempted | | **Open redirect** | `?next=https://evil.exa
  • Network accessline 26
    | **Open redirect** | `?next=https://evil.example`, `//evil.example`, `/\evil.example` | Redirect refused or rewritten | The `Location` header points at your own origin |

dist/agent-skills/.agents/skills/ssrf-prevention/SKILL.md

  • Network accessline 15
    - Constrain the destination with an **allowlist of hosts you intend to reach**, not a denylist of addresses you intend to avoid. A denylist has to enumerate every spelling of every internal address — decimal and octal IPv4, IPv6 and IPv4-ma
  • Network accessline 16
    - Know which of the two controls you built, because it decides whether re-resolution matters. An **allowlist of hostnames** survives DNS rebinding: the attacker controls DNS only for names they own, and those names are not on the list. An *
  • Network accessline 17
    - Re-validate **at every redirect hop**, or disable redirect-following entirely on fetchers that take user-supplied URLs. An allowed host answering `302` to `http://169.254.169.254/` is the single most common bypass, and it defeats a check 
  • Network accessline 27
    - Ship a forwarder that switches on the shape of its input — `path.startsWith('http') ? path : base + path`. It is a latent SSRF that activates the day any caller passes user-influenced input. - Rely on an egress proxy or metadata-blocking 
  • Network accessline 28
    - Rely on an egress proxy or metadata-blocking sidecar as the **only** control. It constrains where traffic goes, not what the application asks for, and it is bypassed by any request path that does not traverse it. - Compare a URL as a **st
  • Network accessline 29
    - Compare a URL as a **string** — prefix match, `contains`, a regex over the raw text. Parse it, then compare the parsed host. `https://allowed.example.com@evil.com/`, `https://evil.com/?x=allowed.example.com` and `https://allowed.example.c

dist/agent-skills/.agents/skills/ssrf-prevention/references/verifying-findings.md

  • Network accessline 27
    | Target | Probe | Real hit | |---|---|---| | **Cloud metadata** | `http://169.254.169.254/latest/meta-data/` | Metadata comes back |
  • Network accessline 28
    |---|---|---| | **Cloud metadata** | `http://169.254.169.254/latest/meta-data/` | Metadata comes back | | **Internal service** | `http://127.0.0.1:6379`, `http://localhost:22` | Service banner or data returns |
  • Network accessline 29
    | **Cloud metadata** | `http://169.254.169.254/latest/meta-data/` | Metadata comes back |
  • Network accessline 30
    | **Internal service** | `http://127.0.0.1:6379`, `http://localhost:22` | Service banner or data returns | | **Redirect bypass** | A URL that `302`s to an internal IP | The server follows it | | **DNS rebinding** | A host that resolves publ

dist/agent-skills/.agents/skills/supply-chain-security/references/ecosystem-controls.md

  • Network accessline 16
    | Ecosystem | Mechanism | Isolation strength | |---|---|---| | **npm / yarn / pnpm** | Scope-to-registry mapping in `.npmrc`: `@yourco:registry=https://npm.internal/` | Strong — the scope resolves from that registry only |
  • Network accessline 17
    |---|---|---| | **npm / yarn / pnpm** | Scope-to-registry mapping in `.npmrc`: `@yourco:registry=https://npm.internal/` | Strong — the scope resolves from that registry only | | **Gradle / Maven** | `exclusiveContent { forRepository { … } f
  • Network accessline 18
    | **npm / yarn / pnpm** | Scope-to-registry mapping in `.npmrc`: `@yourco:registry=https://npm.internal/` | Strong — the scope resolves from that registry only |

dist/agent-skills/.agents/skills/threat-modeling/references/design-level-failures.md

  • Access to secretsline 9
    [Credential-related source omitted]

dist/agent-skills/.agents/skills/websocket-security/references/verifying-findings.md

  • Network accessline 25
    | Class | Probe | Real hit | False positive | |---|---|---|---| | **CSWSH / Origin** | Replay the upgrade with `Origin: https://attacker.example`, carrying the victim's session cookie if cookie auth is in play | The socket reaches OPEN and 
  • Network accessline 26
    |---|---|---|---| | **CSWSH / Origin** | Replay the upgrade with `Origin: https://attacker.example`, carrying the victim's session cookie if cookie auth is in play | The socket reaches OPEN and starts streaming the user's data | The upgrade
  • Network accessline 27
    | **CSWSH / Origin** | Replay the upgrade with `Origin: https://attacker.example`, carrying the victim's session cookie if cookie auth is in play | The socket reaches OPEN and starts streaming the user's data | The upgrade is refused — `4xx

dist/claude-skills/.claude/skills/cicd-security/SKILL.md

  • Dangerous shell operationline 27
    - `curl | bash` (or `wget -O- | sh`) any installer script in CI. The 2021 Codecov bash-uploader compromise exfiltrated env vars to an attacker for ~10 weeks because thousands of pipelines ran `bash <(curl https://codecov.io/bash)`. Always d
  • Network accessline 27
    - `curl | bash` (or `wget -O- | sh`) any installer script in CI. The 2021 Codecov bash-uploader compromise exfiltrated env vars to an attacker for ~10 weeks because thousands of pipelines ran `bash <(curl https://codecov.io/bash)`. Always d

dist/claude-skills/.claude/skills/cicd-security/references/verifying-findings.md

  • Network accessline 29
    | **Script injection** | Trace a `${{ github.event.* }}` value into a `run:` body and echo a marker to prove it executes | The marker executes | The value is passed through an environment variable first | | **Default-write permissions** | I
  • Network accessline 30
    | **Default-write permissions** | Inspect the run's `GITHUB_TOKEN` scopes | `write-all` | A top-level `permissions:` block scoped to `contents: read` | | **curl \| bash** | Read the installer step | A remote script piped straight to a shell
  • Dangerous shell operationline 31
    | **curl \| bash** | Read the installer step | A remote script piped straight to a shell | Downloaded, checksummed, then executed |
  • Network accessline 31
    | **curl \| bash** | Read the installer step | A remote script piped straight to a shell | Downloaded, checksummed, then executed |
  • Network accessline 53
    | A workflow using a floating tag (`@v1`, `@main`, `@latest`) | Gate fails | | A workflow with no top-level `permissions: contents: read` | Gate fails | | `curl \| bash` in a `run:` step | Gate fails |
  • Network accessline 54
    | A workflow with no top-level `permissions: contents: read` | Gate fails | | `curl \| bash` in a `run:` step | Gate fails | | A `pull_request_target` job that checks out the PR head with secrets in scope | Gate fails |
  • Dangerous shell operationline 55
    | `curl \| bash` in a `run:` step | Gate fails |
  • Network accessline 55
    | `curl \| bash` in a `run:` step | Gate fails |

dist/claude-skills/.claude/skills/container-security/SKILL.md

  • Dangerous shell operationline 21
    - Pin **apt** packages and clean lists in the same layer: `apt-get update && apt-get install -y --no-install-recommends pkg=1.2.3 && rm -rf /var/lib/apt/lists/*`. The `update` must be in that same `RUN` — without it there are no package lis
  • Network accessline 39
    - Run a tenant's container `privileged` on a host shared with other tenants, or attach tenant containers to a **shared external bridge network** — the first gives container-escape → co-tenant takeover, the second gives cross-tenant L3 reach
  • Network accessline 40
    - Embed secrets in image layers via `ENV`, `ARG`, `COPY`, or by `echo`-ing them to a file. Even if `--squash`'d, BuildKit cache and registry layers leak. - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — piping an unverified remote scri
  • Dangerous shell operationline 41
    - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — piping an unverified remote script to a shell is arbitrary remote code at build time. Download, verify a pinned SHA-256, then execute.
  • Network accessline 41
    - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — piping an unverified remote script to a shell is arbitrary remote code at build time. Download, verify a pinned SHA-256, then execute.
  • Network accessline 42
    - Use an **unversioned** tag as the final image base — `latest`, `stable`, or a bare variant like `python:slim` / `node:alpine`. Builds become non-reproducible and quietly pick up CVEs. The *versioned* variants (`python:3.12-slim`, `node:20
  • Network accessline 43
    - Use `ADD <url>` to fetch a remote resource **unverified**. Either `ADD --checksum=sha256:<hash> <url>` (Dockerfile frontend 1.6+), or `RUN curl --fail` plus an explicit checksum step, or vendor the artifact.

dist/claude-skills/.claude/skills/container-security/references/eol-base-images.md

  • Network accessline 40
    https://endoflife.date/api/<product>.json

dist/claude-skills/.claude/skills/container-security/references/verifying-findings.md

  • Network accessline 28
    | **Unpinned or EOL base** | Resolve the final `FROM` | A mutable tag (`latest`, `stable`, `slim`) or an end-of-life runtime | A `@sha256:` digest on a maintained runtime | | **Secrets in layers** | `docker history --no-trunc img`, or `dive
  • Network accessline 29
    | **Secrets in layers** | `docker history --no-trunc img`, or `dive` | A token visible in `ENV`, `ARG` or `COPY` | No credential in any layer | | **Remote script execution** | Read the `RUN` steps | `curl … \| sh` — an unverified remote scr
  • Dangerous shell operationline 30
    | **Remote script execution** | Read the `RUN` steps | `curl … \| sh` — an unverified remote script piped to a shell | Downloaded, verified against a pinned SHA-256, then executed |
  • Network accessline 30
    | **Remote script execution** | Read the `RUN` steps | `curl … \| sh` — an unverified remote script piped to a shell | Downloaded, verified against a pinned SHA-256, then executed |

dist/claude-skills/.claude/skills/cors-security/SKILL.md

  • Network accessline 15
    - For any non-public endpoint, allow origins from an explicit allowlist. `*` is correct only when the resource is intentionally public *and* cross-origin access never carries credentials. - When a cross-origin request carries credentials — 
  • Network accessline 16
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Network accessline 17
    - Compare origins by exact match on the **serialized** origin — scheme, host, and port, all three. Never substring, prefix, or suffix matching: `endsWith("example.com")` accepts `https://example.com.evil.com`, and an unescaped `.` in `^http

dist/claude-skills/.claude/skills/cors-security/references/verifying-findings.md

  • Network accessline 20
    | Class | Probe | Real hit | False positive | |---|---|---|---| | **Reflected origin** | `Origin: https://evil.example` | The response echoes `Access-Control-Allow-Origin: https://evil.example` **together with** `Access-Control-Allow-Creden
  • Network accessline 21
    |---|---|---|---| | **Reflected origin** | `Origin: https://evil.example` | The response echoes `Access-Control-Allow-Origin: https://evil.example` **together with** `Access-Control-Allow-Credentials: true` | No ACAO header, or a fixed trus
  • Network accessline 22
    | **Reflected origin** | `Origin: https://evil.example` | The response echoes `Access-Control-Allow-Origin: https://evil.example` **together with** `Access-Control-Allow-Credentials: true` | No ACAO header, or a fixed trusted origin returne
  • Network accessline 47
    | Input | Expected | |---|---| | `Origin: https://evil.example` with credentials | No reflected ACAO |
  • Network accessline 48
    |---|---| | `Origin: https://evil.example` with credentials | No reflected ACAO | | `Origin: null` with credentials | No reflected ACAO |
  • Network accessline 49
    | `Origin: https://evil.example` with credentials | No reflected ACAO |

dist/claude-skills/.claude/skills/crypto-misuse/SKILL.md

  • Network accessline 15
    - Use a maintained, widely reviewed cryptographic API — the platform's own (Node `crypto`, Java JCE, .NET `System.Security.Cryptography`, Go `crypto/*`) or a reputable third-party one (PyCA `cryptography`, `golang.org/x/crypto`, Bouncy Cast
  • Network accessline 16
    - Use a cryptographically secure RNG for anything security-relevant: Python `secrets.token_bytes` / `secrets.token_urlsafe`, JS `crypto.getRandomValues` / `crypto.randomBytes`, Go `crypto/rand.Read`, Java `SecureRandom`. - Hash passwords wi
  • Network accessline 17
    - Hash passwords with a password-specific KDF and a unique random salt per password. Prefer Argon2id; scrypt where appropriate; bcrypt for legacy compatibility; PBKDF2-HMAC-SHA-256 where FIPS-140 compliance is required. Take minimum paramet

dist/claude-skills/.claude/skills/deserialization-security/references/xml.md

  • Network accessline 18
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • Network accessline 19
    dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • Network accessline 20
    dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
  • Network accessline 21
    dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
  • Network accessline 22
    dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

dist/claude-skills/.claude/skills/electron-security/SKILL.md

  • Network accessline 42
    - Dev builds that load `http://localhost:<port>` with relaxed settings — these rules govern **release** builds; the finding is dev config that ships.
  • Network accessline 43
    - A custom protocol (`myapp://`) for OAuth callbacks is expected. The control is `state` / PKCE validation, not the scheme's existence. - `contextBridge`-exposed functions are intentional capabilities. Review what each one does and whether 
  • Network accessline 44
    - `contextBridge`-exposed functions are intentional capabilities. Review what each one does and whether it validates input, not the fact that a bridge exists. - `shell.openExternal` on a hard-coded `https://` constant, not user input. - A f
  • Network accessline 45
    - `shell.openExternal` on a hard-coded `https://` constant, not user input.

dist/claude-skills/.claude/skills/electron-security/references/electron-hardening.md

  • Access to secretsline 56
    [Credential-related source omitted]

dist/claude-skills/.claude/skills/electron-security/references/verifying-findings.md

  • Network accessline 41
    **Probe the release build, not the dev build.** Dev builds legitimately load over `http://localhost:<port>` with relaxed settings, so a probe against the dev
  • Network accessline 42
    `http://localhost:<port>` with relaxed settings, so a probe against the dev

dist/claude-skills/.claude/skills/frontend-security/references/browser-controls.md

  • Network accessline 24
    # host-allowlist policy — every same-origin script is trusted script-src 'self' https://cdn.example.com
  • Network accessline 25
    script-src 'self' https://cdn.example.com
  • Network accessline 43
    `upgrade-insecure-requests` is a migration aid for a site with legacy `http://`

dist/claude-skills/.claude/skills/iac-security/SKILL.md

  • Access to secretsline 26
    [Credential-related source omitted]

dist/claude-skills/.claude/skills/iac-security/references/backends-and-state.md

  • Network accessline 83
    # pinned to an immutable commit — the module cannot change under you module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=a1b2c3d4e5f6…"
  • Network accessline 84
    module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=a1b2c3d4e5f6…" }
  • Network accessline 85
    source = "git::https://github.com/org/modules.git//vpc?ref=a1b2c3d4e5f6…"
  • Network accessline 88
    # a tag can be moved; a branch changes on every push module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=v1.4.0"   # weaker
  • Network accessline 89
    module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=v1.4.0"   # weaker   source = "git::https://github.com/org/modules.git//vpc?ref=main"     # unpinned
  • Network accessline 90
    source = "git::https://github.com/org/modules.git//vpc?ref=v1.4.0"   # weaker
  • Network accessline 91
    source = "git::https://github.com/org/modules.git//vpc?ref=main"     # unpinned

dist/claude-skills/.claude/skills/mobile-security/SKILL.md

  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]

dist/claude-skills/.claude/skills/mobile-security/references/platform-specifics.md

  • Access to secretsline 123
    [Credential-related source omitted]

dist/claude-skills/.claude/skills/mobile-security/references/verifying-findings.md

  • Access to secretsline 12
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]

dist/claude-skills/.claude/skills/protocol-security/references/tls-configuration.md

  • Network accessline 87
    With `requests`, `verify=` takes a CA bundle path as well as a bool: `requests.get(url, verify="/etc/ssl/internal-ca.pem")`.
  • Network accessline 88
    `requests.get(url, verify="/etc/ssl/internal-ca.pem")`.

dist/claude-skills/.claude/skills/protocol-security/references/verifying-findings.md

  • Network accessline 24
    | **Downgrade / weak cipher** | `testssl.sh host:port`, or force a sub-1.2 handshake: `openssl s_client -connect host:port -tls1_1`, or `-cipher 'DES-CBC3-SHA'` | The weak handshake succeeds | A documented legacy-peer exception, isolated be
  • Network accessline 25
    | **Certificate validation** | Present an invalid, self-signed, or wrong-hostname certificate to the client | The client completes the connection | The client refuses it | | **Plaintext fallback / HSTS** | Request the `http://` scheme | `20
  • Network accessline 26
    | **Plaintext fallback / HSTS** | Request the `http://` scheme | `200` with no redirect, or no `Strict-Transport-Security` header on the HTTPS response | A public read-only endpoint, such as a status page, served over HTTP by design |

dist/claude-skills/.claude/skills/saas-security/references/vendor-specifics.md

  • Network accessline 49
    | Slack bot tokens | Requesting the full scope catalogue | Only the scopes you actually call | | Google Workspace OAuth | `admin.directory.user` when you do not write | `.../auth/admin.directory.user.readonly` | | Google Workspace OAuth | `
  • Network accessline 50
    | Google Workspace OAuth | `admin.directory.user` when you do not write | `.../auth/admin.directory.user.readonly` | | Google Workspace OAuth | `https://www.googleapis.com/auth/admin` (super admin) outside a tightly-controlled IT-owned auto
  • Network accessline 51
    | Google Workspace OAuth | `https://www.googleapis.com/auth/admin` (super admin) outside a tightly-controlled IT-owned automation | `admin.directory.*.readonly` |

dist/claude-skills/.claude/skills/secret-detection/SKILL.md

  • Access to secretsline 3
    [Credential-related source omitted]
  • Access to secretsline 11
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]

dist/claude-skills/.claude/skills/secret-detection/metadata.json

  • Access to secretsline 5
    [Credential-related source omitted]

dist/claude-skills/.claude/skills/security-regression-tests/SKILL.md

  • Network accessline 17
    - Assert the **effect**, not only the status code. A `403` proves the request was refused; it does not prove the write did not land somewhere else, that the record was not returned in a different shape, or that a queue message was not emitt
  • Network accessline 18
    - Seed the **fixtures the assertion depends on** before writing it. A cross-tenant test needs two principals and two owned resources, deterministically created — if both test users end up in the same tenant, the deny assertion is untestable
  • Network accessline 19
    - Make it **deterministic and offline**. Freeze the clock for expiry and TTL assertions, stub the HTTP client, dialer or resolver rather than reaching the network, fix random seeds, and avoid sleep-based timing assertions and state shared b

dist/claude-skills/.claude/skills/security-regression-tests/references/test-by-class.md

  • Network accessline 22
    | **Path traversal** | `../../etc/passwd`, an encoded separator, an absolute path | `400` / `404` | No read outside the base directory — assert on the resolved path, or stub the filesystem | | **Command injection** | `; id`, `$(id)`, `` `id
  • Network accessline 23
    | **Command injection** | `; id`, `$(id)`, `` `id` ``, a newline | Normal or rejected | Assert the subprocess was invoked with an **argv array** and the metacharacters arrived as one literal argument | | **SSRF** | `http://169.254.169.254/l
  • Network accessline 24
    | **SSRF** | `http://169.254.169.254/latest/meta-data/`, `http://127.0.0.1:6379/` | `400` | Stub the dialer or transport and assert **no outbound connection was attempted**. A `4xx` alone does not tell you the fetch was never made |
  • Network accessline 25
    | **XXE** | A document declaring an external entity or external DTD | Parse error or entity ignored | The entity's content is absent from the parsed result, and no outbound fetch was attempted | | **Open redirect** | `?next=https://evil.exa
  • Network accessline 26
    | **Open redirect** | `?next=https://evil.example`, `//evil.example`, `/\evil.example` | Redirect refused or rewritten | The `Location` header points at your own origin |

dist/claude-skills/.claude/skills/ssrf-prevention/SKILL.md

  • Network accessline 15
    - Constrain the destination with an **allowlist of hosts you intend to reach**, not a denylist of addresses you intend to avoid. A denylist has to enumerate every spelling of every internal address — decimal and octal IPv4, IPv6 and IPv4-ma
  • Network accessline 16
    - Know which of the two controls you built, because it decides whether re-resolution matters. An **allowlist of hostnames** survives DNS rebinding: the attacker controls DNS only for names they own, and those names are not on the list. An *
  • Network accessline 17
    - Re-validate **at every redirect hop**, or disable redirect-following entirely on fetchers that take user-supplied URLs. An allowed host answering `302` to `http://169.254.169.254/` is the single most common bypass, and it defeats a check 
  • Network accessline 27
    - Ship a forwarder that switches on the shape of its input — `path.startsWith('http') ? path : base + path`. It is a latent SSRF that activates the day any caller passes user-influenced input. - Rely on an egress proxy or metadata-blocking 
  • Network accessline 28
    - Rely on an egress proxy or metadata-blocking sidecar as the **only** control. It constrains where traffic goes, not what the application asks for, and it is bypassed by any request path that does not traverse it. - Compare a URL as a **st
  • Network accessline 29
    - Compare a URL as a **string** — prefix match, `contains`, a regex over the raw text. Parse it, then compare the parsed host. `https://allowed.example.com@evil.com/`, `https://evil.com/?x=allowed.example.com` and `https://allowed.example.c

dist/claude-skills/.claude/skills/ssrf-prevention/references/verifying-findings.md

  • Network accessline 27
    | Target | Probe | Real hit | |---|---|---| | **Cloud metadata** | `http://169.254.169.254/latest/meta-data/` | Metadata comes back |
  • Network accessline 28
    |---|---|---| | **Cloud metadata** | `http://169.254.169.254/latest/meta-data/` | Metadata comes back | | **Internal service** | `http://127.0.0.1:6379`, `http://localhost:22` | Service banner or data returns |
  • Network accessline 29
    | **Cloud metadata** | `http://169.254.169.254/latest/meta-data/` | Metadata comes back |
  • Network accessline 30
    | **Internal service** | `http://127.0.0.1:6379`, `http://localhost:22` | Service banner or data returns | | **Redirect bypass** | A URL that `302`s to an internal IP | The server follows it | | **DNS rebinding** | A host that resolves publ

dist/claude-skills/.claude/skills/supply-chain-security/references/ecosystem-controls.md

  • Network accessline 16
    | Ecosystem | Mechanism | Isolation strength | |---|---|---| | **npm / yarn / pnpm** | Scope-to-registry mapping in `.npmrc`: `@yourco:registry=https://npm.internal/` | Strong — the scope resolves from that registry only |
  • Network accessline 17
    |---|---|---| | **npm / yarn / pnpm** | Scope-to-registry mapping in `.npmrc`: `@yourco:registry=https://npm.internal/` | Strong — the scope resolves from that registry only | | **Gradle / Maven** | `exclusiveContent { forRepository { … } f
  • Network accessline 18
    | **npm / yarn / pnpm** | Scope-to-registry mapping in `.npmrc`: `@yourco:registry=https://npm.internal/` | Strong — the scope resolves from that registry only |

dist/claude-skills/.claude/skills/threat-modeling/references/design-level-failures.md

  • Access to secretsline 9
    [Credential-related source omitted]

dist/claude-skills/.claude/skills/websocket-security/references/verifying-findings.md

  • Network accessline 25
    | Class | Probe | Real hit | False positive | |---|---|---|---| | **CSWSH / Origin** | Replay the upgrade with `Origin: https://attacker.example`, carrying the victim's session cookie if cookie auth is in play | The socket reaches OPEN and 
  • Network accessline 26
    |---|---|---|---| | **CSWSH / Origin** | Replay the upgrade with `Origin: https://attacker.example`, carrying the victim's session cookie if cookie auth is in play | The socket reaches OPEN and starts streaming the user's data | The upgrade
  • Network accessline 27
    | **CSWSH / Origin** | Replay the upgrade with `Origin: https://attacker.example`, carrying the victim's session cookie if cookie auth is in play | The socket reaches OPEN and starts streaming the user's data | The upgrade is refused — `4xx

skills/api-security/SKILL.md

  • Network accessline 108
    - `checklists/auth_patterns.yaml` - `checklists/input_validation.yaml` - [OWASP API Security Top 10 2023](https://owasp.org/API-Security/editions/2023/en/0x00-introduction/).
  • Network accessline 109
    - `checklists/input_validation.yaml` - [OWASP API Security Top 10 2023](https://owasp.org/API-Security/editions/2023/en/0x00-introduction/). - [RFC 9700 — OAuth 2.0 Security BCP](https://datatracker.ietf.org/doc/html/rfc9700).
  • Network accessline 110
    - [OWASP API Security Top 10 2023](https://owasp.org/API-Security/editions/2023/en/0x00-introduction/).
  • Network accessline 111
    - [RFC 9700 — OAuth 2.0 Security BCP](https://datatracker.ietf.org/doc/html/rfc9700).

skills/auth-security/SKILL.md

  • Network accessline 136
    - `rules/jwt_safe_config.json` - `rules/oauth_flows.json` - [OWASP Password Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) — the source of record for work factors; read it, do not reca
  • Network accessline 137
    - `rules/oauth_flows.json` - [OWASP Password Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) — the source of record for work factors; read it, do not recall it. - [OWASP Authentication 
  • Network accessline 138
    - [OWASP Password Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) — the source of record for work factors; read it, do not recall it.
  • Network accessline 139
    - [OWASP Authentication Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html).
  • Network accessline 140
    - [RFC 9700 — OAuth 2.0 Security BCP](https://datatracker.ietf.org/doc/html/rfc9700).
  • Network accessline 141
    - [NIST SP 800-63B](https://pages.nist.gov/800-63-3/sp800-63b.html).

skills/auth-security/rules/oauth_flows.json

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 10
    [Credential-related source omitted]

skills/cicd-security/SKILL.md

  • Network accessline 89
    ### NEVER - `curl | bash` (or `wget -O- | sh`) any installer script in CI.
  • Dangerous shell operationline 90
    - `curl | bash` (or `wget -O- | sh`) any installer script in CI.
  • Network accessline 90
    - `curl | bash` (or `wget -O- | sh`) any installer script in CI.
  • Network accessline 91
    The 2021 Codecov bash-uploader compromise exfiltrated env vars to an   attacker for ~10 weeks because thousands of pipelines ran   `bash <(curl https://codecov.io/bash)`. Always download, checksum,
  • Network accessline 92
    attacker for ~10 weeks because thousands of pipelines ran   `bash <(curl https://codecov.io/bash)`. Always download, checksum,   then execute.
  • Dangerous shell operationline 93
    `bash <(curl https://codecov.io/bash)`. Always download, checksum,
  • Network accessline 93
    `bash <(curl https://codecov.io/bash)`. Always download, checksum,
  • Network accessline 145
    - `references/verifying-findings.md` — confirm or refute a finding, then lock it - `checklists/gitlab_ci_hardening.yaml` - [OpenSSF Scorecard](https://github.com/ossf/scorecard).
  • Network accessline 146
    - `checklists/gitlab_ci_hardening.yaml` - [OpenSSF Scorecard](https://github.com/ossf/scorecard). - [SLSA v1.0 Build Track](https://slsa.dev/spec/v1.0/levels).
  • Network accessline 147
    - [OpenSSF Scorecard](https://github.com/ossf/scorecard). - [SLSA v1.0 Build Track](https://slsa.dev/spec/v1.0/levels). - [GitHub Security Lab — Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-
  • Network accessline 148
    - [SLSA v1.0 Build Track](https://slsa.dev/spec/v1.0/levels). - [GitHub Security Lab — Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/). - [StepSecurity — tj-actions/changed-files att
  • Network accessline 149
    - [GitHub Security Lab — Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/).
  • Network accessline 150
    - [StepSecurity — tj-actions/changed-files attack analysis](https://www.stepsecurity.io/blog/tj-actions-changed-files-attack-analysis).
  • Network accessline 151
    - [CWE-1395](https://cwe.mitre.org/data/definitions/1395.html).

skills/cicd-security/checklists/gitlab_ci_hardening.yaml

  • Network accessline 7
    and class-of-attack mitigations parallel to GitHub Actions guidance. references:   - "https://docs.gitlab.com/ee/ci/pipelines/pipeline_security.html"
  • Network accessline 8
    references:   - "https://docs.gitlab.com/ee/ci/pipelines/pipeline_security.html"   - "https://docs.gitlab.com/ee/ci/yaml/#workflowrules"
  • Network accessline 9
    - "https://docs.gitlab.com/ee/ci/pipelines/pipeline_security.html"
  • Network accessline 10
    - "https://docs.gitlab.com/ee/ci/yaml/#workflowrules"
  • Network accessline 11
    - "https://docs.gitlab.com/ee/ci/runners/configure_runners.html"

skills/cicd-security/references/verifying-findings.md

  • Network accessline 29
    | **Script injection** | Trace a `${{ github.event.* }}` value into a `run:` body and echo a marker to prove it executes | The marker executes | The value is passed through an environment variable first | | **Default-write permissions** | I
  • Network accessline 30
    | **Default-write permissions** | Inspect the run's `GITHUB_TOKEN` scopes | `write-all` | A top-level `permissions:` block scoped to `contents: read` | | **curl \| bash** | Read the installer step | A remote script piped straight to a shell
  • Dangerous shell operationline 31
    | **curl \| bash** | Read the installer step | A remote script piped straight to a shell | Downloaded, checksummed, then executed |
  • Network accessline 31
    | **curl \| bash** | Read the installer step | A remote script piped straight to a shell | Downloaded, checksummed, then executed |
  • Network accessline 53
    | A workflow using a floating tag (`@v1`, `@main`, `@latest`) | Gate fails | | A workflow with no top-level `permissions: contents: read` | Gate fails | | `curl \| bash` in a `run:` step | Gate fails |
  • Network accessline 54
    | A workflow with no top-level `permissions: contents: read` | Gate fails | | `curl \| bash` in a `run:` step | Gate fails | | A `pull_request_target` job that checks out the PR head with secrets in scope | Gate fails |
  • Dangerous shell operationline 55
    | `curl \| bash` in a `run:` step | Gate fails |
  • Network accessline 55
    | `curl \| bash` in a `run:` step | Gate fails |

skills/container-security/SKILL.md

  • Dangerous shell operationline 71
    apt-get install -y --no-install-recommends pkg=1.2.3 && rm -rf
  • Network accessline 145
    <!-- pattern: { id: dkr-no-secrets-in-build-args, severity: critical, cwe: 798, check: llm } -->   <!-- pattern: { id: dkr-no-secret-leak-in-layers, severity: critical, check: llm } --> - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — 
  • Network accessline 146
    <!-- pattern: { id: dkr-no-secret-leak-in-layers, severity: critical, check: llm } --> - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — piping an unverified   remote script to a shell is arbitrary remote code at build time. Download,
  • Dangerous shell operationline 147
    - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — piping an unverified
  • Network accessline 147
    - Run `curl … | sh` or `wget -O- … | sh` in a `RUN` — piping an unverified
  • Network accessline 157
    - Use `ADD <url>` to fetch a remote resource **unverified**. Either   `ADD --checksum=sha256:<hash> <url>` (Dockerfile frontend 1.6+), or `RUN curl   --fail` plus an explicit checksum step, or vendor the artifact.
  • Network accessline 158
    `ADD --checksum=sha256:<hash> <url>` (Dockerfile frontend 1.6+), or `RUN curl   --fail` plus an explicit checksum step, or vendor the artifact.   <!-- pattern: { id: dkr-no-add-remote, severity: medium, check: deterministic } -->
  • Network accessline 221
    (`internal/tools/library_scanners.go`), not in a checklist file — run them with   `secure-vibe scan` or the `scan_dockerfile` tool. - [CIS Docker Benchmark](https://www.cisecurity.org/benchmark/docker).
  • Network accessline 222
    `secure-vibe scan` or the `scan_dockerfile` tool. - [CIS Docker Benchmark](https://www.cisecurity.org/benchmark/docker). - [CIS Kubernetes Benchmark](https://www.cisecurity.org/benchmark/kubernetes).
  • Network accessline 223
    - [CIS Docker Benchmark](https://www.cisecurity.org/benchmark/docker).
  • Network accessline 224
    - [CIS Kubernetes Benchmark](https://www.cisecurity.org/benchmark/kubernetes).
  • Network accessline 225
    - [NIST SP 800-190](https://csrc.nist.gov/publications/detail/sp/800-190/final).

skills/container-security/references/eol-base-images.md

  • Network accessline 40
    https://endoflife.date/api/<product>.json

skills/container-security/references/verifying-findings.md

  • Network accessline 28
    | **Unpinned or EOL base** | Resolve the final `FROM` | A mutable tag (`latest`, `stable`, `slim`) or an end-of-life runtime | A `@sha256:` digest on a maintained runtime | | **Secrets in layers** | `docker history --no-trunc img`, or `dive
  • Network accessline 29
    | **Secrets in layers** | `docker history --no-trunc img`, or `dive` | A token visible in `ENV`, `ARG` or `COPY` | No credential in any layer | | **Remote script execution** | Read the `RUN` steps | `curl … \| sh` — an unverified remote scr
  • Dangerous shell operationline 30
    | **Remote script execution** | Read the `RUN` steps | `curl … \| sh` — an unverified remote script piped to a shell | Downloaded, verified against a pinned SHA-256, then executed |
  • Network accessline 30
    | **Remote script execution** | Read the `RUN` steps | `curl … \| sh` — an unverified remote script piped to a shell | Downloaded, verified against a pinned SHA-256, then executed |

skills/container-security/tests/corpus.json

  • Network accessline 8
    "id": "latest-tag-root-curl-sh",       "filename": "Dockerfile",       "text": "FROM node:latest\nUSER root\nRUN curl http://example.com/install.sh | sh\n",
  • Dangerous shell operationline 10
    "text": "FROM node:latest\nUSER root\nRUN curl http://example.com/install.sh | sh\n",
  • Network accessline 10
    "text": "FROM node:latest\nUSER root\nRUN curl http://example.com/install.sh | sh\n",
  • Network accessline 32
    "id": "add-remote-url",       "filename": "Dockerfile",       "text": "FROM node:18@sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890\nADD https://example.com/app.tar.gz /opt/app.tar.gz\nUSER 10001\nHEALTHCHECK CMD tru
  • Network accessline 34
    "text": "FROM node:18@sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890\nADD https://example.com/app.tar.gz /opt/app.tar.gz\nUSER 10001\nHEALTHCHECK CMD true\nCMD [\"node\", \"server.js\"]\n",
  • Dangerous shell operationline 50
    "text": "FROM node:18@sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890\nUSER 10001\nRUN echo \"no remote fetch, no curl|sh\"\nHEALTHCHECK CMD true\nCMD [\"node\", \"server.js\"]\n",

skills/cors-security/SKILL.md

  • Access to secretsline 35
    [Credential-related source omitted]
  • Network accessline 41
    - Compare origins by exact match on the **serialized** origin — scheme, host, and port,   all three. Never substring, prefix, or suffix matching: `endsWith("example.com")`   accepts `https://example.com.evil.com`, and an unescaped `.` in
  • Network accessline 42
    all three. Never substring, prefix, or suffix matching: `endsWith("example.com")`   accepts `https://example.com.evil.com`, and an unescaped `.` in   `^https://api.example.com$` accepts `https://apiXexample.com`.
  • Network accessline 43
    accepts `https://example.com.evil.com`, and an unescaped `.` in
  • Network accessline 44
    `^https://api.example.com$` accepts `https://apiXexample.com`.
  • Network accessline 106
    - `references/verifying-findings.md` — confirm or refute a finding, then lock it - `rules/cors_safe_config.json` - [OWASP CORS Origin Header Scrutiny](https://owasp.org/www-community/attacks/CORS_OriginHeaderScrutiny).
  • Network accessline 107
    - `rules/cors_safe_config.json` - [OWASP CORS Origin Header Scrutiny](https://owasp.org/www-community/attacks/CORS_OriginHeaderScrutiny). - [CWE-942](https://cwe.mitre.org/data/definitions/942.html).
  • Network accessline 108
    - [OWASP CORS Origin Header Scrutiny](https://owasp.org/www-community/attacks/CORS_OriginHeaderScrutiny). - [CWE-942](https://cwe.mitre.org/data/definitions/942.html). - [Fetch — CORS protocol](https://fetch.spec.whatwg.org/#http-cors-proto
  • Network accessline 109
    - [CWE-942](https://cwe.mitre.org/data/definitions/942.html).
  • Network accessline 110
    - [Fetch — CORS protocol](https://fetch.spec.whatwg.org/#http-cors-protocol).

skills/cors-security/references/verifying-findings.md

  • Network accessline 20
    | Class | Probe | Real hit | False positive | |---|---|---|---| | **Reflected origin** | `Origin: https://evil.example` | The response echoes `Access-Control-Allow-Origin: https://evil.example` **together with** `Access-Control-Allow-Creden
  • Network accessline 21
    |---|---|---|---| | **Reflected origin** | `Origin: https://evil.example` | The response echoes `Access-Control-Allow-Origin: https://evil.example` **together with** `Access-Control-Allow-Credentials: true` | No ACAO header, or a fixed trus
  • Network accessline 22
    | **Reflected origin** | `Origin: https://evil.example` | The response echoes `Access-Control-Allow-Origin: https://evil.example` **together with** `Access-Control-Allow-Credentials: true` | No ACAO header, or a fixed trusted origin returne
  • Network accessline 47
    | Input | Expected | |---|---| | `Origin: https://evil.example` with credentials | No reflected ACAO |
  • Network accessline 48
    |---|---| | `Origin: https://evil.example` with credentials | No reflected ACAO | | `Origin: null` with credentials | No reflected ACAO |
  • Network accessline 49
    | `Origin: https://evil.example` with credentials | No reflected ACAO |

skills/cors-security/tests/corpus.json

  • Network accessline 11
    {       "id": "allowlist-with-credentials",       "text": "const ALLOWED = new Set(['https://app.example.com']); app.use((req, res, next) => { const origin = req.headers.origin; if (ALLOWED.has(origin)) { res.setHeader('Access-Control-Allow
  • Network accessline 13
    "text": "const ALLOWED = new Set(['https://app.example.com']); app.use((req, res, next) => { const origin = req.headers.origin; if (ALLOWED.has(origin)) { res.setHeader('Access-Control-Allow-Origin', origin); res.setHeader('Access-Control-A
  • Network accessline 23
    {       "id": "reflect-allowlisted-origin",       "text": "const ALLOWED = new Set(['https://app.example.com']); app.use((req, res, next) => { const origin = req.headers.origin; if (ALLOWED.has(origin)) { res.setHeader('Access-Control-Allow
  • Network accessline 25
    "text": "const ALLOWED = new Set(['https://app.example.com']); app.use((req, res, next) => { const origin = req.headers.origin; if (ALLOWED.has(origin)) { res.setHeader('Access-Control-Allow-Origin', origin); res.setHeader('Vary', 'Origin')
  • Network accessline 35
    {       "id": "cors-middleware-allowlist",       "text": "const cors = require('cors'); const ALLOWED = ['https://app.example.com']; app.use(cors({ origin: ALLOWED, credentials: true }));",
  • Network accessline 37
    "text": "const cors = require('cors'); const ALLOWED = ['https://app.example.com']; app.use(cors({ origin: ALLOWED, credentials: true }));",

skills/crypto-misuse/SKILL.md

  • Network accessline 45
    PBKDF2-HMAC-SHA-256 where FIPS-140 compliance is required. Take minimum parameters   from the current [OWASP Password Storage Cheat   Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html),
  • Network accessline 46
    from the current [OWASP Password Storage Cheat   Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html),   then benchmark on production hardware and choose the highest cost that still meets
  • Network accessline 47
    Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html),
  • Network accessline 138
    - `rules/algorithm_blocklist.json` - `rules/key_size_minimums.json` - [OWASP Password Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) — the source of record for KDF work factors.
  • Network accessline 139
    - `rules/key_size_minimums.json` - [OWASP Password Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) — the source of record for KDF work factors. - [OWASP Cryptographic Storage Cheat Shee
  • Network accessline 140
    - [OWASP Password Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) — the source of record for KDF work factors.
  • Network accessline 141
    - [OWASP Cryptographic Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html).
  • Network accessline 142
    - [NIST SP 800-131A](https://csrc.nist.gov/publications/detail/sp/800-131a/rev-2/final) and [SP 800-57 Part 1](https://csrc.nist.gov/publications/detail/sp/800-57-part-1/rev-5/final) — check the CSRC page for a newer revision before citing 
  • Network accessline 143
    - [CWE-327](https://cwe.mitre.org/data/definitions/327.html) — Broken or risky crypto.
  • Network accessline 144
    - [CWE-916](https://cwe.mitre.org/data/definitions/916.html) — Insufficient computational effort for password hash.

skills/database-security/SKILL.md

  • Network accessline 139
    - `rules/sql_injection_sinks.json` - `rules/orm_safe_patterns.json` - [OWASP SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).
  • Network accessline 140
    - `rules/orm_safe_patterns.json` - [OWASP SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html). - [OWASP NoSQL Security Cheat Sheet](https://cheatsheetseries.owasp.o
  • Network accessline 141
    - [OWASP SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).
  • Network accessline 142
    - [OWASP NoSQL Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/NoSQL_Security_Cheat_Sheet.html).
  • Network accessline 143
    - [CWE-89](https://cwe.mitre.org/data/definitions/89.html) — SQL Injection.
  • Network accessline 144
    - [CWE-943](https://cwe.mitre.org/data/definitions/943.html) — Data query logic injection.
  • Network accessline 145
    - [PostgreSQL Row-Level Security](https://www.postgresql.org/docs/current/ddl-rowsecurity.html).

skills/deserialization-security/SKILL.md

  • Network accessline 112
    - `references/xml.md` — per-platform flags to disable DTD and external entities - `rules/unsafe_deserializers.json` — build-time catalogue, not shipped to the agent - [OWASP Deserialization Cheat Sheet](https://cheatsheetseries.owasp.org/ch
  • Network accessline 113
    - `rules/unsafe_deserializers.json` — build-time catalogue, not shipped to the agent - [OWASP Deserialization Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html). - [OWASP XXE Prevention Cheat Sheet
  • Network accessline 114
    - [OWASP Deserialization Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html).
  • Network accessline 115
    - [OWASP XXE Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html).
  • Network accessline 116
    - [CWE-502](https://cwe.mitre.org/data/definitions/502.html) · [CWE-611](https://cwe.mitre.org/data/definitions/611.html).

skills/deserialization-security/references/xml.md

  • Network accessline 18
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • Network accessline 19
    dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • Network accessline 20
    dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
  • Network accessline 21
    dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
  • Network accessline 22
    dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

skills/deserialization-security/rules/unsafe_deserializers.json

  • Network accessline 4
    "description": "Catalogue of deserialization primitives that constitute RCE when fed untrusted bytes, with per-language safe alternatives and references to historical CVEs they have appeared in.",   "references": [     "https://cheatsheetse
  • Network accessline 5
    "references": [     "https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html",     "https://cwe.mitre.org/data/definitions/502.html"
  • Network accessline 6
    "https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html",
  • Network accessline 7
    "https://cwe.mitre.org/data/definitions/502.html"

skills/dynamic-verification/SKILL.md

  • Network accessline 187
    - `references/oracles-by-class.md` — which probe proves each vulnerability class, and the three signals that look like proof but are not - [OWASP Web Security Testing Guide](https://owasp.org/www-project-web-security-testing-guide/).
  • Network accessline 188
    - [OWASP Web Security Testing Guide](https://owasp.org/www-project-web-security-testing-guide/).
  • Network accessline 189
    - [OWASP Top 10 2021](https://owasp.org/Top10/).
  • Network accessline 190
    - [PortSwigger Web Security Academy](https://portswigger.net/web-security).

skills/electron-security/SKILL.md

  • Network accessline 123
    ### KNOWN FALSE POSITIVES - Dev builds that load `http://localhost:<port>` with relaxed settings — these rules
  • Network accessline 124
    - Dev builds that load `http://localhost:<port>` with relaxed settings — these rules
  • Network accessline 128
    - `contextBridge`-exposed functions are intentional capabilities. Review what each   one does and whether it validates input, not the fact that a bridge exists. - `shell.openExternal` on a hard-coded `https://` constant, not user input.
  • Network accessline 129
    one does and whether it validates input, not the fact that a bridge exists. - `shell.openExternal` on a hard-coded `https://` constant, not user input. - A frameless window loading **only** local first-party content behind a
  • Network accessline 130
    - `shell.openExternal` on a hard-coded `https://` constant, not user input.
  • Network accessline 166
    - `checklists/electron_hardening.yaml` — machine-readable hardening checks   (window config, IPC sinks, navigation, deep-link, token storage) - [Electron Security Checklist](https://www.electronjs.org/docs/latest/tutorial/security).
  • Network accessline 167
    (window config, IPC sinks, navigation, deep-link, token storage) - [Electron Security Checklist](https://www.electronjs.org/docs/latest/tutorial/security). - [Electron Fuses](https://www.electronjs.org/docs/latest/tutorial/fuses).
  • Network accessline 168
    - [Electron Security Checklist](https://www.electronjs.org/docs/latest/tutorial/security).
  • Network accessline 169
    - [Electron Fuses](https://www.electronjs.org/docs/latest/tutorial/fuses).
  • Network accessline 170
    - [CWE-78 — OS Command Injection](https://cwe.mitre.org/data/definitions/78.html).
  • Network accessline 171
    - [CWE-22 — Path Traversal](https://cwe.mitre.org/data/definitions/22.html).
  • Network accessline 172
    - [CWE-250 — Execution with Unnecessary Privileges](https://cwe.mitre.org/data/definitions/250.html).

skills/electron-security/checklists/electron_hardening.yaml

  • Access to secretsline 55
    [Credential-related source omitted]

skills/electron-security/references/electron-hardening.md

  • Access to secretsline 56
    [Credential-related source omitted]

skills/electron-security/references/verifying-findings.md

  • Network accessline 41
    **Probe the release build, not the dev build.** Dev builds legitimately load over `http://localhost:<port>` with relaxed settings, so a probe against the dev
  • Network accessline 42
    `http://localhost:<port>` with relaxed settings, so a probe against the dev

skills/electron-security/tests/corpus.json

  • Network accessline 5
    {       "id": "nodeintegration-window-detect",       "text": "const win = new BrowserWindow({\n  width: 1200,\n  height: 800,\n  webPreferences: {\n    nodeIntegration: true,\n    contextIsolation: false,\n  },\n});\nwin.loadURL('https://re
  • Network accessline 7
    "text": "const win = new BrowserWindow({\n  width: 1200,\n  height: 800,\n  webPreferences: {\n    nodeIntegration: true,\n    contextIsolation: false,\n  },\n});\nwin.loadURL('https://reports.example.com/dashboard');",
  • Network accessline 11
    {       "id": "nodeintegration-window-ignore",       "text": "const win = new BrowserWindow({\n  width: 1200,\n  height: 800,\n  webPreferences: {\n    nodeIntegration: false,\n    contextIsolation: true,\n    sandbox: true,\n    preload: p
  • Network accessline 13
    "text": "const win = new BrowserWindow({\n  width: 1200,\n  height: 800,\n  webPreferences: {\n    nodeIntegration: false,\n    contextIsolation: true,\n    sandbox: true,\n    preload: path.join(__dirname, 'preload.js'),\n  },\n});\nwin.lo
  • Dangerous shell operationline 19
    "text": "ipcMain.handle('open-container-logs', (event, name) => {\n  // name comes from the renderer\n  return new Promise((resolve, reject) => {\n    exec(`docker logs ${name}`, (err, stdout) => {\n      if (err) return reject(err);\n     
  • Dangerous shell operationline 21
    "reason": "Concatenates renderer-supplied input into a shell string for child_process.exec, violating NEVER 'Concatenate renderer input into a shell string'. CWE-78 (OS Command Injection); a name of \"x; rm -rf ~\" runs arbitrary commands."

skills/error-handling-security/SKILL.md

  • Network accessline 107
    framework, and why the environment variable is not the switch - `rules/error_response_template.json` - [OWASP Error Handling Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Error_Handling_Cheat_Sheet.html).
  • Network accessline 108
    - `rules/error_response_template.json` - [OWASP Error Handling Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Error_Handling_Cheat_Sheet.html). - [RFC 9457 — Problem Details for HTTP APIs](https://www.rfc-editor.org/rfc/rfc9457
  • Network accessline 109
    - [OWASP Error Handling Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Error_Handling_Cheat_Sheet.html).
  • Network accessline 110
    - [RFC 9457 — Problem Details for HTTP APIs](https://www.rfc-editor.org/rfc/rfc9457.html).
  • Network accessline 111
    - [CWE-209](https://cwe.mitre.org/data/definitions/209.html) · [CWE-755](https://cwe.mitre.org/data/definitions/755.html).

skills/file-upload-security/SKILL.md

  • Network accessline 137
    choice, archive limits, and hardening the media processors - `rules/upload_validation.json` - [OWASP File Upload Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html).
  • Network accessline 138
    - `rules/upload_validation.json` - [OWASP File Upload Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html). - [CWE-434](https://cwe.mitre.org/data/definitions/434.html) · [CWE-409](https://cwe.mitre.org/
  • Network accessline 139
    - [OWASP File Upload Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html).
  • Network accessline 140
    - [CWE-434](https://cwe.mitre.org/data/definitions/434.html) · [CWE-409](https://cwe.mitre.org/data/definitions/409.html) · [CWE-22](https://cwe.mitre.org/data/definitions/22.html).
  • Network accessline 141
    - [Snyk Zip Slip](https://snyk.io/research/zip-slip-vulnerability) · [ImageTragick](https://imagetragick.com/).

skills/file-upload-security/rules/upload_validation.json

  • Network accessline 4
    "description": "Validation rules and anti-patterns for HTTP / object-storage file upload endpoints. Combine magic-byte allowlist, filename sanitization, size/timeout limits, separate serving domain, and out-of-band virus scanning.",   "refe
  • Network accessline 5
    "references": [     "https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html",     "https://cwe.mitre.org/data/definitions/434.html"
  • Network accessline 6
    "https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html",
  • Network accessline 7
    "https://cwe.mitre.org/data/definitions/434.html"

skills/file-upload-security/tests/corpus.json

  • Network accessline 11
    {       "id": "magic-bytes-allowlist-random-name-ignore",       "text": "import { fileTypeFromBuffer } from 'file-type';\nconst ALLOWED = new Set(['image/png', 'image/jpeg']);\napp.post('/upload', upload.single('file'), async (req, res) => 
  • Network accessline 13
    "text": "import { fileTypeFromBuffer } from 'file-type';\nconst ALLOWED = new Set(['image/png', 'image/jpeg']);\napp.post('/upload', upload.single('file'), async (req, res) => {\n  if (req.file.size > 5 * 1024 * 1024) return res.status(413)

skills/frontend-security/SKILL.md

  • Network accessline 150
    - `rules/csp_defaults.json` - `rules/xss_sinks.json` - [OWASP XSS Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).
  • Network accessline 151
    - `rules/xss_sinks.json` - [OWASP XSS Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html). - [OWASP CSP Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Content
  • Network accessline 152
    - [OWASP XSS Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).
  • Network accessline 153
    - [OWASP CSP Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html).
  • Network accessline 154
    - [OWASP DOM Clobbering Prevention](https://cheatsheetseries.owasp.org/cheatsheets/DOM_Clobbering_Prevention_Cheat_Sheet.html).
  • Network accessline 155
    - [Trusted Types specification (W3C)](https://www.w3.org/TR/trusted-types/).
  • Network accessline 156
    - [CWE-79](https://cwe.mitre.org/data/definitions/79.html) · [CWE-346](https://cwe.mitre.org/data/definitions/346.html).

skills/frontend-security/references/browser-controls.md

  • Network accessline 24
    # host-allowlist policy — every same-origin script is trusted script-src 'self' https://cdn.example.com
  • Network accessline 25
    script-src 'self' https://cdn.example.com
  • Network accessline 43
    `upgrade-insecure-requests` is a migration aid for a site with legacy `http://`

skills/frontend-security/tests/corpus.json

  • Dangerous shell operationline 31
    "text": "function compute(req, res) {\n  const expr = req.query.expr;\n  const result = eval(expr);\n  res.json({ result });\n}",

skills/graphql-security/SKILL.md

  • Network accessline 126
    where each server configures limits, and APQ versus trusted documents - `rules/graphql_safe_config.json` - [OWASP GraphQL Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/GraphQL_Cheat_Sheet.html).
  • Network accessline 127
    - `rules/graphql_safe_config.json` - [OWASP GraphQL Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/GraphQL_Cheat_Sheet.html). - [GraphQL specification — validation](https://spec.graphql.org/).
  • Network accessline 128
    - [OWASP GraphQL Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/GraphQL_Cheat_Sheet.html).
  • Network accessline 129
    - [GraphQL specification — validation](https://spec.graphql.org/).
  • Network accessline 130
    - [CWE-400](https://cwe.mitre.org/data/definitions/400.html).
  • Network accessline 131
    - [graphql-armor](https://escape.tech/graphql-armor/).

skills/graphql-security/rules/graphql_safe_config.json

  • Network accessline 4
    "description": "Safe-default configuration for production GraphQL servers, applicable across Apollo Server, graphql-yoga, graphene, gqlgen, Hot Chocolate, etc.",   "references": [     "https://cheatsheetseries.owasp.org/cheatsheets/GraphQL_
  • Network accessline 5
    "references": [     "https://cheatsheetseries.owasp.org/cheatsheets/GraphQL_Cheat_Sheet.html",     "https://www.apollographql.com/docs/apollo-server/security/production-checklist/",
  • Network accessline 6
    "https://cheatsheetseries.owasp.org/cheatsheets/GraphQL_Cheat_Sheet.html",
  • Network accessline 7
    "https://www.apollographql.com/docs/apollo-server/security/production-checklist/",
  • Network accessline 8
    "https://escape.tech/graphql-armor/"

skills/iac-security/SKILL.md

  • Access to secretsline 77
    [Credential-related source omitted]
  • Network accessline 120
    - `checklists/terraform_hardening.yaml` - `checklists/cloudformation_hardening.yaml` - [CIS AWS Foundations Benchmark](https://www.cisecurity.org/benchmark/amazon_web_services).
  • Network accessline 121
    - `checklists/cloudformation_hardening.yaml` - [CIS AWS Foundations Benchmark](https://www.cisecurity.org/benchmark/amazon_web_services). - [Terraform recommended practices](https://developer.hashicorp.com/terraform/cloud-docs/recommended-p
  • Network accessline 122
    - [CIS AWS Foundations Benchmark](https://www.cisecurity.org/benchmark/amazon_web_services).
  • Network accessline 123
    - [Terraform recommended practices](https://developer.hashicorp.com/terraform/cloud-docs/recommended-practices).
  • Network accessline 124
    - [NIST SP 800-53 Rev. 5](https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final).

skills/iac-security/references/backends-and-state.md

  • Network accessline 83
    # pinned to an immutable commit — the module cannot change under you module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=a1b2c3d4e5f6…"
  • Network accessline 84
    module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=a1b2c3d4e5f6…" }
  • Network accessline 85
    source = "git::https://github.com/org/modules.git//vpc?ref=a1b2c3d4e5f6…"
  • Network accessline 88
    # a tag can be moved; a branch changes on every push module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=v1.4.0"   # weaker
  • Network accessline 89
    module "vpc" {   source = "git::https://github.com/org/modules.git//vpc?ref=v1.4.0"   # weaker   source = "git::https://github.com/org/modules.git//vpc?ref=main"     # unpinned
  • Network accessline 90
    source = "git::https://github.com/org/modules.git//vpc?ref=v1.4.0"   # weaker
  • Network accessline 91
    source = "git::https://github.com/org/modules.git//vpc?ref=main"     # unpinned

skills/iam-best-practices/SKILL.md

  • Network accessline 143
    - `rules/iam_policy_invariants.json` - `rules/key_rotation_policy.json` - [AWS IAM best practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).
  • Network accessline 144
    - `rules/key_rotation_policy.json` - [AWS IAM best practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html). - [Google Cloud IAM recommender](https://cloud.google.com/iam/docs/recommender-overview).
  • Network accessline 145
    - [AWS IAM best practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).
  • Network accessline 146
    - [Google Cloud IAM recommender](https://cloud.google.com/iam/docs/recommender-overview).
  • Network accessline 147
    - [CNCF Kubernetes RBAC good practices](https://kubernetes.io/docs/concepts/security/rbac-good-practices/).
  • Network accessline 148
    - [NIST SP 800-53 Rev. 5](https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final).

skills/iam-best-practices/rules/key_rotation_policy.json

  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]

skills/llm-app-security/SKILL.md

  • Network accessline 133
    - `references/verifying-findings.md` — confirm or refute a finding, then lock it - `rules/prompt_injection_patterns.json` - [OWASP Top 10 for LLM Applications 2025](https://genai.owasp.org/llm-top-10/).
  • Network accessline 134
    - `rules/prompt_injection_patterns.json` - [OWASP Top 10 for LLM Applications 2025](https://genai.owasp.org/llm-top-10/). - [OWASP GenAI Security Project](https://genai.owasp.org/) — including the Agentic Applications work.
  • Network accessline 135
    - [OWASP Top 10 for LLM Applications 2025](https://genai.owasp.org/llm-top-10/).
  • Network accessline 136
    - [OWASP GenAI Security Project](https://genai.owasp.org/) — including the Agentic Applications work.
  • Network accessline 137
    - [MITRE ATLAS](https://atlas.mitre.org/).
  • Network accessline 138
    - [CWE-1426](https://cwe.mitre.org/data/definitions/1426.html) — Improper Validation of Generative AI Output.

skills/llm-app-security/tests/corpus.json

  • Dangerous shell operationline 19
    "text": "const code = await llm.complete(prompt); eval(code);",

skills/logging-security/SKILL.md

  • Network accessline 120
    `error-handling-security` hands off to it rather than carrying its own - `rules/audit_event_schema.json` - [OWASP Logging Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).
  • Network accessline 121
    - `rules/audit_event_schema.json` - [OWASP Logging Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html). - [CWE-532](https://cwe.mitre.org/data/definitions/532.html) · [CWE-117](https://cwe.mitre.org/data/de
  • Network accessline 122
    - [OWASP Logging Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).
  • Network accessline 123
    - [CWE-532](https://cwe.mitre.org/data/definitions/532.html) · [CWE-117](https://cwe.mitre.org/data/definitions/117.html).
  • Network accessline 124
    - [NIST SP 800-92](https://csrc.nist.gov/publications/detail/sp/800-92/final).

skills/logging-security/rules/redaction_patterns.json

  • Access to secretsline 10
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]

skills/ml-security/SKILL.md

  • Network accessline 130
    pinned PyTorch does by default, Hub loading with pinned revisions, and sandbox   settings for inspecting an untrusted artifact - [NIST AI 100-2](https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-2e2023.pdf).
  • Network accessline 131
    settings for inspecting an untrusted artifact - [NIST AI 100-2](https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-2e2023.pdf). - [MITRE ATLAS](https://atlas.mitre.org/).
  • Network accessline 132
    - [NIST AI 100-2](https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-2e2023.pdf).
  • Network accessline 133
    - [MITRE ATLAS](https://atlas.mitre.org/).
  • Network accessline 134
    - [CWE-502](https://cwe.mitre.org/data/definitions/502.html) — Deserialization of Untrusted Data.

skills/ml-security/tests/corpus.json

  • Network accessline 5
    {       "id": "torch-load-untrusted-url",       "text": "import torch, requests, io\n\nurl = 'http://random-models.example.com/community/checkpoint.pt'\nblob = requests.get(url).content\nmodel = torch.load(io.BytesIO(blob))  # default weigh
  • Network accessline 7
    "text": "import torch, requests, io\n\nurl = 'http://random-models.example.com/community/checkpoint.pt'\nblob = requests.get(url).content\nmodel = torch.load(io.BytesIO(blob))  # default weights_only=False\nmodel.eval()",
  • Network accessline 11
    {       "id": "pickle-loads-model",       "text": "import pickle, urllib.request\n\nraw = urllib.request.urlopen('https://hub.example.net/uploads/model.pkl').read()\nclf = pickle.loads(raw)\nprediction = clf.predict(features)",
  • Network accessline 13
    "text": "import pickle, urllib.request\n\nraw = urllib.request.urlopen('https://hub.example.net/uploads/model.pkl').read()\nclf = pickle.loads(raw)\nprediction = clf.predict(features)",
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]

skills/mobile-security/SKILL.md

  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 78
    [Credential-related source omitted]
  • Access to secretsline 127
    [Credential-related source omitted]
  • Network accessline 150
    - `checklists/android_manifest.yaml` - `checklists/ios_keychain_ats.yaml` - [OWASP MASVS v2.0](https://mas.owasp.org/MASVS/) · [MASTG](https://mas.owasp.org/MASTG/).
  • Network accessline 151
    - `checklists/ios_keychain_ats.yaml` - [OWASP MASVS v2.0](https://mas.owasp.org/MASVS/) · [MASTG](https://mas.owasp.org/MASTG/). - [CWE-919](https://cwe.mitre.org/data/definitions/919.html) — Weaknesses in Mobile Applications.
  • Network accessline 152
    - [OWASP MASVS v2.0](https://mas.owasp.org/MASVS/) · [MASTG](https://mas.owasp.org/MASTG/).
  • Network accessline 153
    - [CWE-919](https://cwe.mitre.org/data/definitions/919.html) — Weaknesses in Mobile Applications.

skills/mobile-security/checklists/ios_keychain_ats.yaml

  • Access to secretsline 9
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]

skills/mobile-security/references/platform-specifics.md

  • Access to secretsline 123
    [Credential-related source omitted]

skills/mobile-security/references/verifying-findings.md

  • Access to secretsline 12
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]

skills/mobile-security/tests/corpus.json

  • Access to secretsline 3
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]

skills/protocol-security/SKILL.md

  • Network accessline 134
    - `rules/tls_defaults.json` - `rules/cert_validation_sinks.json` - [NIST SP 800-52 Rev. 2](https://csrc.nist.gov/pubs/sp/800/52/r2/final).
  • Network accessline 135
    - `rules/cert_validation_sinks.json` - [NIST SP 800-52 Rev. 2](https://csrc.nist.gov/pubs/sp/800/52/r2/final). - [RFC 8446 — TLS 1.3](https://datatracker.ietf.org/doc/html/rfc8446).
  • Network accessline 136
    - [NIST SP 800-52 Rev. 2](https://csrc.nist.gov/pubs/sp/800/52/r2/final).
  • Network accessline 137
    - [RFC 8446 — TLS 1.3](https://datatracker.ietf.org/doc/html/rfc8446).
  • Network accessline 138
    - [CWE-295](https://cwe.mitre.org/data/definitions/295.html) · [CWE-319](https://cwe.mitre.org/data/definitions/319.html).

skills/protocol-security/references/tls-configuration.md

  • Network accessline 87
    With `requests`, `verify=` takes a CA bundle path as well as a bool: `requests.get(url, verify="/etc/ssl/internal-ca.pem")`.
  • Network accessline 88
    `requests.get(url, verify="/etc/ssl/internal-ca.pem")`.

skills/protocol-security/references/verifying-findings.md

  • Network accessline 24
    | **Downgrade / weak cipher** | `testssl.sh host:port`, or force a sub-1.2 handshake: `openssl s_client -connect host:port -tls1_1`, or `-cipher 'DES-CBC3-SHA'` | The weak handshake succeeds | A documented legacy-peer exception, isolated be
  • Network accessline 25
    | **Certificate validation** | Present an invalid, self-signed, or wrong-hostname certificate to the client | The client completes the connection | The client refuses it | | **Plaintext fallback / HSTS** | Request the `http://` scheme | `20
  • Network accessline 26
    | **Plaintext fallback / HSTS** | Request the `http://` scheme | `200` with no redirect, or no `Strict-Transport-Security` header on the HTTPS response | A public read-only endpoint, such as a status page, served over HTTP by design |

skills/protocol-security/tests/corpus.json

  • Network accessline 11
    {       "id": "python-requests-verify-false",       "text": "import requests\n\ndef post_credentials(url, username, password):\n    return requests.post(url, json={'user': username, 'pass': password}, verify=False)",
  • Network accessline 13
    "text": "import requests\n\ndef post_credentials(url, username, password):\n    return requests.post(url, json={'user': username, 'pass': password}, verify=False)",
  • Network accessline 17
    {       "id": "go-tls-min-version-ssl30",       "text": "package main\n\nimport (\n\t\"crypto/tls\"\n\t\"net/http\"\n)\n\nfunc client() *http.Client {\n\tcfg := &tls.Config{\n\t\tMinVersion: tls.VersionSSL30,\n\t\tMaxVersion: tls.VersionTLS
  • Network accessline 19
    "text": "package main\n\nimport (\n\t\"crypto/tls\"\n\t\"net/http\"\n)\n\nfunc client() *http.Client {\n\tcfg := &tls.Config{\n\t\tMinVersion: tls.VersionSSL30,\n\t\tMaxVersion: tls.VersionTLS11,\n\t}\n\treturn &http.Client{Transport: &http
  • Network accessline 29
    {       "id": "python-requests-verified",       "text": "import requests\n\nsession = requests.Session()\n\ndef post_credentials(url, username, password):\n    # verify defaults to True -> full CA chain + hostname validation\n    return ses
  • Network accessline 31
    "text": "import requests\n\nsession = requests.Session()\n\ndef post_credentials(url, username, password):\n    # verify defaults to True -> full CA chain + hostname validation\n    return session.post(url, json={'user': username, 'pass': p
  • Network accessline 35
    {       "id": "go-tls12-min-verified",       "text": "package main\n\nimport (\n\t\"crypto/tls\"\n\t\"net/http\"\n)\n\nfunc client() *http.Client {\n\tcfg := &tls.Config{\n\t\tMinVersion: tls.VersionTLS12,\n\t\tRenegotiation: tls.Renegotiat
  • Network accessline 37
    "text": "package main\n\nimport (\n\t\"crypto/tls\"\n\t\"net/http\"\n)\n\nfunc client() *http.Client {\n\tcfg := &tls.Config{\n\t\tMinVersion: tls.VersionTLS12,\n\t\tRenegotiation: tls.RenegotiateNever,\n\t}\n\treturn &http.Client{Transport

skills/saas-security/SKILL.md

  • Network accessline 137
    - `references/verifying-findings.md` — confirm or refute a finding, then lock it - `rules/` — per-vendor rule files used by the scanners at build time - [OWASP API Security Top 10](https://owasp.org/API-Security/editions/2023/en/0x11-t10/).
  • Network accessline 138
    - `rules/` — per-vendor rule files used by the scanners at build time - [OWASP API Security Top 10](https://owasp.org/API-Security/editions/2023/en/0x11-t10/). - [CWE-345](https://cwe.mitre.org/data/definitions/345.html) · [CWE-294](https:/
  • Network accessline 139
    - [OWASP API Security Top 10](https://owasp.org/API-Security/editions/2023/en/0x11-t10/).
  • Network accessline 140
    - [CWE-345](https://cwe.mitre.org/data/definitions/345.html) · [CWE-294](https://cwe.mitre.org/data/definitions/294.html).

skills/saas-security/rules/atlassian.json

  • Network accessline 144
    ],   "references": [     "https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/",
  • Network accessline 145
    "references": [     "https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/",     "https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/",
  • Network accessline 146
    "https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/",
  • Network accessline 147
    "https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/",
  • Network accessline 148
    "https://support.atlassian.com/security-and-access-policies/",
  • Network accessline 149
    "https://www.atlassian.com/trust"

skills/saas-security/rules/bamboohr.json

  • Access to secretsline 13
    [Credential-related source omitted]
  • Network accessline 22
    {       "name": "BambooHR API URL with embedded key",       "regex": "https://api\\.bamboohr\\.com/api/gateway\\.php/[A-Za-z0-9_\\-]+/[^\\\"' ]+:[a-zA-Z0-9]{20,}@",
  • Network accessline 23
    "name": "BambooHR API URL with embedded key",       "regex": "https://api\\.bamboohr\\.com/api/gateway\\.php/[A-Za-z0-9_\\-]+/[^\\\"' ]+:[a-zA-Z0-9]{20,}@",       "severity": "critical",
  • Network accessline 24
    "regex": "https://api\\.bamboohr\\.com/api/gateway\\.php/[A-Za-z0-9_\\-]+/[^\\\"' ]+:[a-zA-Z0-9]{20,}@",
  • Network accessline 88
    ],   "references": [     "https://documentation.bamboohr.com/docs/getting-started",
  • Network accessline 89
    "references": [     "https://documentation.bamboohr.com/docs/getting-started",     "https://www.bamboohr.com/security/",
  • Network accessline 90
    "https://documentation.bamboohr.com/docs/getting-started",
  • Network accessline 91
    "https://www.bamboohr.com/security/",
  • Network accessline 92
    "https://documentation.bamboohr.com/reference/webhooks"

skills/saas-security/rules/calendly.json

  • Access to secretsline 14
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 99
    ],   "references": [     "https://developer.calendly.com/api-docs/2kgmebsui9oc1-webhook-signatures",
  • Network accessline 100
    "references": [     "https://developer.calendly.com/api-docs/2kgmebsui9oc1-webhook-signatures",     "https://developer.calendly.com/api-docs/r4LjEYTQjklRk-getting-started",
  • Network accessline 101
    "https://developer.calendly.com/api-docs/2kgmebsui9oc1-webhook-signatures",
  • Network accessline 102
    "https://developer.calendly.com/api-docs/r4LjEYTQjklRk-getting-started",
  • Network accessline 103
    "https://help.calendly.com/hc/en-us/articles/360045366834-Security-overview"

skills/saas-security/rules/google_chat.json

  • Network accessline 7
    [Credential-related source omitted]
  • Network accessline 8
    [Credential-related source omitted]
  • Network accessline 9
    [Credential-related source omitted]
  • Network accessline 62
    ],   "references": [     "https://developers.google.com/chat/api/guides/quickstart/incoming-bots-python",
  • Network accessline 63
    "references": [     "https://developers.google.com/chat/api/guides/quickstart/incoming-bots-python",     "https://developers.google.com/chat/concepts/auth",
  • Network accessline 64
    "https://developers.google.com/chat/api/guides/quickstart/incoming-bots-python",
  • Network accessline 65
    "https://developers.google.com/chat/concepts/auth",
  • Network accessline 66
    "https://support.google.com/a/answer/9540647"

skills/saas-security/rules/google_workspace.json

  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Network accessline 102
    [Credential-related source omitted]
  • Network accessline 162
    [Credential-related source omitted]
  • Network accessline 163
    [Credential-related source omitted]
  • Network accessline 164
    [Credential-related source omitted]
  • Network accessline 165
    [Credential-related source omitted]
  • Network accessline 166
    [Credential-related source omitted]
  • Network accessline 167
    [Credential-related source omitted]

skills/saas-security/rules/hubspot.json

  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 102
    ],   "references": [     "https://developers.hubspot.com/docs/api/private-apps",
  • Network accessline 103
    "references": [     "https://developers.hubspot.com/docs/api/private-apps",     "https://developers.hubspot.com/docs/api/webhooks/validating-requests",
  • Network accessline 104
    "https://developers.hubspot.com/docs/api/private-apps",     "https://developers.hubspot.com/docs/api/webhooks/validating-requests",     "https://knowledge.hubspot.com/account/set-up-two-factor-authentication-2fa"
  • Network accessline 105
    "https://developers.hubspot.com/docs/api/webhooks/validating-requests",
  • Network accessline 106
    "https://knowledge.hubspot.com/account/set-up-two-factor-authentication-2fa"

skills/saas-security/rules/larksuite.json

  • Network accessline 7
    {       "name": "Lark / Feishu Bot Webhook URL",       "regex": "https://open\\.(?:larksuite\\.com|feishu\\.cn)/open-apis/bot/v2/hook/[a-f0-9\\-]{16,}",
  • Network accessline 8
    "name": "Lark / Feishu Bot Webhook URL",       "regex": "https://open\\.(?:larksuite\\.com|feishu\\.cn)/open-apis/bot/v2/hook/[a-f0-9\\-]{16,}",       "severity": "high",
  • Network accessline 9
    "regex": "https://open\\.(?:larksuite\\.com|feishu\\.cn)/open-apis/bot/v2/hook/[a-f0-9\\-]{16,}",
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 65
    [Credential-related source omitted]
  • Access to secretsline 70
    [Credential-related source omitted]
  • Network accessline 129
    ],   "references": [     "https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/authen-v1/authen/access_token",
  • Network accessline 130
    "references": [     "https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/authen-v1/authen/access_token",     "https://open.feishu.cn/document/server-docs/im-v1/message-card/send-messages-using-webhooks",
  • Network accessline 131
    [Credential-related source omitted]
  • Access to secretsline 131
    [Credential-related source omitted]
  • Network accessline 132
    "https://open.feishu.cn/document/server-docs/im-v1/message-card/send-messages-using-webhooks",
  • Network accessline 133
    "https://www.larksuite.com/hc/en-us/categories/360000146496-Security"

skills/saas-security/rules/microsoft_teams.json

  • Network accessline 7
    {       "name": "Microsoft Teams Incoming Webhook URL",       "regex": "https://[A-Za-z0-9\\-]+\\.webhook\\.office\\.com/webhookb2/[a-f0-9\\-]{36}@[a-f0-9\\-]{36}/IncomingWebhook/[a-f0-9]{32}/[a-f0-9\\-]{36}(?:/V2)?",
  • Network accessline 8
    "name": "Microsoft Teams Incoming Webhook URL",       "regex": "https://[A-Za-z0-9\\-]+\\.webhook\\.office\\.com/webhookb2/[a-f0-9\\-]{36}@[a-f0-9\\-]{36}/IncomingWebhook/[a-f0-9]{32}/[a-f0-9\\-]{36}(?:/V2)?",       "severity": "high",
  • Network accessline 9
    "regex": "https://[A-Za-z0-9\\-]+\\.webhook\\.office\\.com/webhookb2/[a-f0-9\\-]{36}@[a-f0-9\\-]{36}/IncomingWebhook/[a-f0-9]{32}/[a-f0-9\\-]{36}(?:/V2)?",
  • Access to secretsline 42
    [Credential-related source omitted]
  • Network accessline 104
    ],   "references": [     "https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook",
  • Network accessline 105
    "references": [     "https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook",     "https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-outgoing-
  • Network accessline 106
    "https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook",
  • Network accessline 107
    "https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-outgoing-webhook",
  • Network accessline 108
    "https://learn.microsoft.com/en-us/microsoftteams/security-compliance-overview",
  • Network accessline 109
    "https://learn.microsoft.com/en-us/azure/bot-service/bot-builder-authentication"

skills/saas-security/rules/netsuite.json

  • Access to secretsline 30
    [Credential-related source omitted]
  • Dangerous shell operationline 110
    "title": "SuiteScript code that `eval()`s a Custom Record string field",
  • Network accessline 145
    ],   "references": [     "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4247337262.html",
  • Network accessline 146
    "references": [     "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4247337262.html",     "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_158132338057.html",
  • Network accessline 147
    "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4247337262.html",
  • Network accessline 148
    "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_158132338057.html",
  • Network accessline 149
    "https://www.netsuite.com/portal/services/security.shtml"

skills/saas-security/rules/notion.json

  • Network accessline 103
    ],   "references": [     "https://developers.notion.com/docs/authorization",
  • Network accessline 104
    "references": [     "https://developers.notion.com/docs/authorization",     "https://www.notion.so/help/data-security-and-compliance",
  • Network accessline 105
    "https://developers.notion.com/docs/authorization",
  • Network accessline 106
    "https://www.notion.so/help/data-security-and-compliance",
  • Network accessline 107
    "https://www.notion.so/help/audit-log"

skills/saas-security/rules/odoo.json

  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 110
    ],   "references": [     "https://www.odoo.com/documentation/master/administration/on_premise/deploy.html",
  • Network accessline 111
    "references": [     "https://www.odoo.com/documentation/master/administration/on_premise/deploy.html",     "https://www.odoo.com/documentation/master/developer/reference/external_api.html",
  • Network accessline 112
    "https://www.odoo.com/documentation/master/administration/on_premise/deploy.html",
  • Network accessline 113
    "https://www.odoo.com/documentation/master/developer/reference/external_api.html",
  • Network accessline 114
    "https://www.odoo.com/security"

skills/saas-security/rules/salesforce.json

  • Access to secretsline 43
    [Credential-related source omitted]
  • Network accessline 50
    {       "name": "Salesforce Login URL with embedded session",       "regex": "https://[A-Za-z0-9.\\-]+\\.(my\\.salesforce|salesforce|force)\\.com/secur/frontdoor\\.jsp\\?sid=[A-Za-z0-9._\\-!]+",
  • Network accessline 51
    "name": "Salesforce Login URL with embedded session",       "regex": "https://[A-Za-z0-9.\\-]+\\.(my\\.salesforce|salesforce|force)\\.com/secur/frontdoor\\.jsp\\?sid=[A-Za-z0-9._\\-!]+",       "severity": "critical",
  • Network accessline 52
    "regex": "https://[A-Za-z0-9.\\-]+\\.(my\\.salesforce|salesforce|force)\\.com/secur/frontdoor\\.jsp\\?sid=[A-Za-z0-9._\\-!]+",
  • Network accessline 138
    ],   "references": [     "https://help.salesforce.com/s/articleView?id=sf.security_overview.htm",
  • Network accessline 139
    "references": [     "https://help.salesforce.com/s/articleView?id=sf.security_overview.htm",     "https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm",
  • Network accessline 140
    "https://help.salesforce.com/s/articleView?id=sf.security_overview.htm",
  • Network accessline 141
    "https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm",
  • Network accessline 142
    "https://help.salesforce.com/s/articleView?id=sf.security_guest_user_sharing.htm",
  • Network accessline 143
    "https://help.salesforce.com/s/articleView?id=sf.event_monitoring.htm"

skills/saas-security/rules/slack.json

  • Network accessline 81
    {       "name": "Slack Incoming Webhook URL",       "regex": "https://hooks\\.slack\\.com/services/T[A-Z0-9]{8,}/B[A-Z0-9]{8,}/[A-Za-z0-9]{20,}",
  • Network accessline 82
    "name": "Slack Incoming Webhook URL",       "regex": "https://hooks\\.slack\\.com/services/T[A-Z0-9]{8,}/B[A-Z0-9]{8,}/[A-Za-z0-9]{20,}",       "severity": "high",
  • Network accessline 83
    "regex": "https://hooks\\.slack\\.com/services/T[A-Z0-9]{8,}/B[A-Z0-9]{8,}/[A-Za-z0-9]{20,}",
  • Network accessline 160
    ],   "references": [     "https://api.slack.com/authentication/token-types",
  • Network accessline 161
    "references": [     "https://api.slack.com/authentication/token-types",     "https://api.slack.com/authentication/verifying-requests-from-slack",
  • Network accessline 162
    "https://api.slack.com/authentication/token-types",     "https://api.slack.com/authentication/verifying-requests-from-slack",     "https://slack.com/help/articles/360002360574-Slack-Connect-Channel-shared-with-an-external-organization",
  • Network accessline 163
    "https://api.slack.com/authentication/verifying-requests-from-slack",
  • Network accessline 164
    "https://slack.com/help/articles/360002360574-Slack-Connect-Channel-shared-with-an-external-organization",
  • Network accessline 165
    "https://slack.com/security"

skills/saas-security/rules/workday.json

  • Network accessline 33
    {       "name": "Workday Report-as-a-Service URL (often with embedded creds)",       "regex": "https://wd[0-9]+(?:-services|-impl-services)?\\.myworkday\\.com/ccx/service/customreport2/[A-Za-z0-9_\\-]+/[A-Za-z0-9_\\-/]+\\?format=(json|xml|c
  • Network accessline 34
    "name": "Workday Report-as-a-Service URL (often with embedded creds)",       "regex": "https://wd[0-9]+(?:-services|-impl-services)?\\.myworkday\\.com/ccx/service/customreport2/[A-Za-z0-9_\\-]+/[A-Za-z0-9_\\-/]+\\?format=(json|xml|csv)",   
  • Network accessline 35
    "regex": "https://wd[0-9]+(?:-services|-impl-services)?\\.myworkday\\.com/ccx/service/customreport2/[A-Za-z0-9_\\-]+/[A-Za-z0-9_\\-/]+\\?format=(json|xml|csv)",
  • Network accessline 120
    ],   "references": [     "https://community.workday.com/sites/default/files/file-hosting/restapi/index.html",
  • Network accessline 121
    "references": [     "https://community.workday.com/sites/default/files/file-hosting/restapi/index.html",     "https://doc.workday.com/admin-guide/en-us/security.html",
  • Network accessline 122
    "https://community.workday.com/sites/default/files/file-hosting/restapi/index.html",
  • Network accessline 123
    "https://doc.workday.com/admin-guide/en-us/security.html",
  • Network accessline 124
    "https://www.workday.com/en-us/products/platform-product-extensions/integrations.html"

skills/saas-security/rules/zoom.json

  • Access to secretsline 14
    [Credential-related source omitted]
  • Network accessline 48
    {       "name": "Zoom Meeting Join URL with embedded password (pwd=)",       "regex": "https://[A-Za-z0-9\\-]+\\.zoom\\.us/j/[0-9]+\\?pwd=[A-Za-z0-9.]+",
  • Network accessline 49
    "name": "Zoom Meeting Join URL with embedded password (pwd=)",       "regex": "https://[A-Za-z0-9\\-]+\\.zoom\\.us/j/[0-9]+\\?pwd=[A-Za-z0-9.]+",       "severity": "medium",
  • Network accessline 50
    "regex": "https://[A-Za-z0-9\\-]+\\.zoom\\.us/j/[0-9]+\\?pwd=[A-Za-z0-9.]+",
  • Network accessline 128
    ],   "references": [     "https://developers.zoom.us/docs/internal-apps/s2s-oauth/",
  • Network accessline 129
    "references": [     "https://developers.zoom.us/docs/internal-apps/s2s-oauth/",     "https://developers.zoom.us/docs/api/webhooks/",
  • Network accessline 130
    "https://developers.zoom.us/docs/internal-apps/s2s-oauth/",
  • Network accessline 131
    "https://developers.zoom.us/docs/api/webhooks/",
  • Network accessline 132
    "https://developers.zoom.us/docs/integrations/security/",
  • Network accessline 133
    "https://www.zoom.com/en/trust/security/"

skills/saas-security/tests/corpus.json

  • Network accessline 17
    [Credential-related source omitted]
  • Network accessline 19
    [Credential-related source omitted]
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]

skills/secret-detection/SKILL.md

  • Access to secretsline 5
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]
  • Network accessline 135
    prefixes, hotwords, entropy floors, and the `exclusions:` block - `tests/corpus.json` — fixtures for validation - [OWASP Secrets Management Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html)
  • Network accessline 136
    - `tests/corpus.json` — fixtures for validation - [OWASP Secrets Management Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html) - [CWE-798](https://cwe.mitre.org/data/definitions/798.html) — Use 
  • Network accessline 137
    - [OWASP Secrets Management Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html)
  • Network accessline 138
    - [CWE-798](https://cwe.mitre.org/data/definitions/798.html) — Use of Hard-coded Credentials.
  • Network accessline 139
    - [CWE-259](https://cwe.mitre.org/data/definitions/259.html) — Use of Hard-coded Password.

skills/secret-detection/checklists/secret_detection.yaml

  • Network accessline 5
    Unified secret-detection rules for the secret-detection skill — regex patterns and false-positive exclusions. Migrated from rules/dlp_patterns.json + rules/dlp_exclusions.json in PR-B1. The legacy i18n hotword sidecar (dlp_patterns.locales.
  • Network accessline 6
    references: - https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html - https://cwe.mitre.org/data/definitions/798.html
  • Network accessline 7
    - https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html
  • Network accessline 8
    - https://cwe.mitre.org/data/definitions/798.html
  • Network accessline 9
    - https://cwe.mitre.org/data/definitions/259.html
  • Access to secretsline 207
    [Credential-related source omitted]
  • Access to secretsline 240
    [Credential-related source omitted]
  • Access to secretsline 320
    [Credential-related source omitted]
  • Network accessline 777
    [Credential-related source omitted]
  • Network accessline 778
    [Credential-related source omitted]
  • Network accessline 779
    [Credential-related source omitted]
  • Network accessline 780
    [Credential-related source omitted]
  • Network accessline 792
    [Credential-related source omitted]
  • Network accessline 793
    [Credential-related source omitted]
  • Network accessline 794
    [Credential-related source omitted]
  • Access to secretsline 861
    [Credential-related source omitted]
  • Network accessline 908
    [Credential-related source omitted]
  • Network accessline 909
    [Credential-related source omitted]
  • Network accessline 910
    [Credential-related source omitted]
  • Network accessline 1005
    [Credential-related source omitted]
  • Network accessline 1006
    [Credential-related source omitted]
  • Network accessline 1007
    [Credential-related source omitted]
  • Access to secretsline 1025
    [Credential-related source omitted]
  • Network accessline 1035
    [Credential-related source omitted]
  • Network accessline 1036
    [Credential-related source omitted]
  • Network accessline 1037
    [Credential-related source omitted]
  • Network accessline 1050
    [Credential-related source omitted]
  • Network accessline 1051
    [Credential-related source omitted]
  • Network accessline 1052
    [Credential-related source omitted]
  • Network accessline 1096
    [Credential-related source omitted]
  • Network accessline 1097
    [Credential-related source omitted]
  • Network accessline 1098
    [Credential-related source omitted]
  • Network accessline 1126
    [Credential-related source omitted]
  • Network accessline 1127
    [Credential-related source omitted]
  • Network accessline 1128
    [Credential-related source omitted]
  • Access to secretsline 1147
    [Credential-related source omitted]
  • Network accessline 1198
    [Credential-related source omitted]
  • Network accessline 1199
    [Credential-related source omitted]
  • Network accessline 1200
    [Credential-related source omitted]
  • Network accessline 1215
    [Credential-related source omitted]
  • Network accessline 1216
    [Credential-related source omitted]
  • Network accessline 1217
    [Credential-related source omitted]
  • Network accessline 1233
    [Credential-related source omitted]
  • Network accessline 1234
    [Credential-related source omitted]
  • Network accessline 1235
    [Credential-related source omitted]
  • Network accessline 1250
    [Credential-related source omitted]
  • Network accessline 1251
    [Credential-related source omitted]
  • Network accessline 1252
    [Credential-related source omitted]
  • Network accessline 1271
    [Credential-related source omitted]
  • Network accessline 1272
    [Credential-related source omitted]
  • Network accessline 1273
    [Credential-related source omitted]
  • Network accessline 1287
    [Credential-related source omitted]
  • Network accessline 1288
    [Credential-related source omitted]
  • Network accessline 1289
    [Credential-related source omitted]
  • Network accessline 1302
    [Credential-related source omitted]
  • Network accessline 1303
    [Credential-related source omitted]
  • Network accessline 1304
    [Credential-related source omitted]
  • Access to secretsline 1314
    [Credential-related source omitted]
  • Network accessline 1318
    [Credential-related source omitted]
  • Network accessline 1319
    [Credential-related source omitted]
  • Network accessline 1320
    [Credential-related source omitted]
  • Network accessline 1334
    [Credential-related source omitted]
  • Network accessline 1335
    [Credential-related source omitted]
  • Network accessline 1336
    [Credential-related source omitted]

skills/secret-detection/tests/corpus.json

  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 73
    [Credential-related source omitted]
  • Access to secretsline 91
    [Credential-related source omitted]
  • Access to secretsline 121
    [Credential-related source omitted]
  • Access to secretsline 139
    [Credential-related source omitted]
  • Access to secretsline 151
    [Credential-related source omitted]
  • Access to secretsline 437
    [Credential-related source omitted]
  • Access to secretsline 444
    [Credential-related source omitted]
  • Access to secretsline 451
    [Credential-related source omitted]
  • Access to secretsline 458
    [Credential-related source omitted]
  • Access to secretsline 465
    [Credential-related source omitted]
  • Access to secretsline 472
    [Credential-related source omitted]
  • Access to secretsline 479
    [Credential-related source omitted]
  • Access to secretsline 486
    [Credential-related source omitted]
  • Access to secretsline 493
    [Credential-related source omitted]
  • Access to secretsline 499
    [Credential-related source omitted]
  • Access to secretsline 500
    [Credential-related source omitted]
  • Network accessline 547
    {       "id": "tn-prose-06",       "text": "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'/>",
  • Network accessline 549
    "text": "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'/>",
  • Network accessline 568
    {       "id": "tn-pubid-01",       "text": "https://cdn.example.com/static/dist/main.0123456789abcdef.js",
  • Network accessline 570
    "text": "https://cdn.example.com/static/dist/main.0123456789abcdef.js",
  • Network accessline 589
    {       "id": "tn-pubid-04",       "text": "https://i.imgur.com/AbCdEfG.png",
  • Network accessline 591
    "text": "https://i.imgur.com/AbCdEfG.png",
  • Access to secretsline 829
    [Credential-related source omitted]
  • Access to secretsline 836
    [Credential-related source omitted]
  • Access to secretsline 843
    [Credential-related source omitted]
  • Access to secretsline 850
    [Credential-related source omitted]
  • Access to secretsline 857
    [Credential-related source omitted]
  • Access to secretsline 864
    [Credential-related source omitted]
  • Access to secretsline 871
    [Credential-related source omitted]
  • Access to secretsline 878
    [Credential-related source omitted]
  • Access to secretsline 990
    [Credential-related source omitted]
  • Access to secretsline 997
    [Credential-related source omitted]
  • Access to secretsline 1004
    [Credential-related source omitted]
  • Access to secretsline 1011
    [Credential-related source omitted]
  • Access to secretsline 1018
    [Credential-related source omitted]
  • Access to secretsline 1025
    [Credential-related source omitted]
  • Access to secretsline 1032
    [Credential-related source omitted]
  • Access to secretsline 1039
    [Credential-related source omitted]
  • Access to secretsline 1207
    [Credential-related source omitted]
  • Access to secretsline 1214
    [Credential-related source omitted]
  • Access to secretsline 1221
    [Credential-related source omitted]
  • Access to secretsline 1228
    [Credential-related source omitted]
  • Access to secretsline 1235
    [Credential-related source omitted]
  • Access to secretsline 1242
    [Credential-related source omitted]
  • Access to secretsline 1249
    [Credential-related source omitted]
  • Access to secretsline 1256
    [Credential-related source omitted]
  • Access to secretsline 1291
    [Credential-related source omitted]
  • Access to secretsline 1298
    [Credential-related source omitted]
  • Access to secretsline 1305
    [Credential-related source omitted]
  • Access to secretsline 1312
    [Credential-related source omitted]
  • Access to secretsline 1319
    [Credential-related source omitted]
  • Access to secretsline 1326
    [Credential-related source omitted]
  • Access to secretsline 1333
    [Credential-related source omitted]
  • Access to secretsline 1340
    [Credential-related source omitted]
  • Access to secretsline 1550
    [Credential-related source omitted]
  • Access to secretsline 1557
    [Credential-related source omitted]
  • Access to secretsline 1564
    [Credential-related source omitted]
  • Access to secretsline 1571
    [Credential-related source omitted]
  • Access to secretsline 1578
    [Credential-related source omitted]
  • Access to secretsline 1585
    [Credential-related source omitted]
  • Access to secretsline 1592
    [Credential-related source omitted]
  • Access to secretsline 1599
    [Credential-related source omitted]

skills/secure-code-review/SKILL.md

  • Network accessline 123
    - `checklists/owasp_top10.yaml` - `checklists/injection_patterns.yaml` - [CWE-78](https://cwe.mitre.org/data/definitions/78.html) · [CWE-22](https://cwe.mitre.org/data/definitions/22.html) · [CWE-20](https://cwe.mitre.org/data/definitions/2
  • Network accessline 124
    - `checklists/injection_patterns.yaml` - [CWE-78](https://cwe.mitre.org/data/definitions/78.html) · [CWE-22](https://cwe.mitre.org/data/definitions/22.html) · [CWE-20](https://cwe.mitre.org/data/definitions/20.html). - [OWASP Top 10 2021](h
  • Network accessline 125
    - [CWE-78](https://cwe.mitre.org/data/definitions/78.html) · [CWE-22](https://cwe.mitre.org/data/definitions/22.html) · [CWE-20](https://cwe.mitre.org/data/definitions/20.html).
  • Network accessline 126
    - [OWASP Top 10 2021](https://owasp.org/Top10/).

skills/secure-code-review/checklists/owasp_top10.yaml

  • Dangerous shell operationline 16
    ai_check: "Parameterized queries only. No shell=True. No eval()."

skills/secure-code-review/tests/corpus.json

  • Dangerous shell operationline 7
    "text": "from flask import request\n\n@app.route('/calc')\ndef calc():\n    expr = request.args.get('expr')\n    result = eval(expr)  # attacker controls expr\n    return str(result)",
  • Dangerous shell operationline 9
    "reason": "User-controlled input is passed straight to eval(), allowing arbitrary code execution. Violates the NEVER 'Pass user input directly to eval'. CWE-95 / CWE-94 Code Injection."
  • Dangerous shell operationline 13
    "text": "const { exec } = require('child_process');\n\napp.get('/ping', (req, res) => {\n  const host = req.query.host;\n  exec('ping -c 1 ' + host, (err, stdout) => res.send(stdout));\n});",
  • Dangerous shell operationline 15
    "reason": "User input is concatenated into a shell command run by child_process.exec; 'host=8.8.8.8; rm -rf /' executes attacker commands. Violates the NEVER 'Pass user input directly to child_process'. CWE-78 OS Command Injection."

skills/security-regression-tests/SKILL.md

  • Network accessline 49
    network, fix random seeds, and avoid sleep-based timing assertions and state shared   between tests. Note that a canonical SSRF payload such as   `http://169.254.169.254/latest/meta-data/` is a *live, reachable* address on a cloud
  • Network accessline 50
    between tests. Note that a canonical SSRF payload such as   `http://169.254.169.254/latest/meta-data/` is a *live, reachable* address on a cloud   CI runner, so the naive test both leaves the sandbox and returns a different verdict
  • Network accessline 51
    `http://169.254.169.254/latest/meta-data/` is a *live, reachable* address on a cloud
  • Network accessline 122
    - `references/test-by-class.md` — attack input, secure outcome, the effect to assert   and the paired control case, per finding class - [OWASP Web Security Testing Guide](https://owasp.org/www-project-web-security-testing-guide/).
  • Network accessline 124
    - [OWASP Web Security Testing Guide](https://owasp.org/www-project-web-security-testing-guide/).

skills/security-regression-tests/references/test-by-class.md

  • Network accessline 22
    | **Path traversal** | `../../etc/passwd`, an encoded separator, an absolute path | `400` / `404` | No read outside the base directory — assert on the resolved path, or stub the filesystem | | **Command injection** | `; id`, `$(id)`, `` `id
  • Network accessline 23
    | **Command injection** | `; id`, `$(id)`, `` `id` ``, a newline | Normal or rejected | Assert the subprocess was invoked with an **argv array** and the metacharacters arrived as one literal argument | | **SSRF** | `http://169.254.169.254/l
  • Network accessline 24
    | **SSRF** | `http://169.254.169.254/latest/meta-data/`, `http://127.0.0.1:6379/` | `400` | Stub the dialer or transport and assert **no outbound connection was attempted**. A `4xx` alone does not tell you the fetch was never made |
  • Network accessline 25
    | **XXE** | A document declaring an external entity or external DTD | Parse error or entity ignored | The entity's content is absent from the parsed result, and no outbound fetch was attempted | | **Open redirect** | `?next=https://evil.exa
  • Network accessline 26
    | **Open redirect** | `?next=https://evil.example`, `//evil.example`, `/\evil.example` | Redirect refused or rewritten | The `Location` header points at your own origin |

skills/serverless-security/SKILL.md

  • Network accessline 140
    - `checklists/lambda_hardening.yaml` - `checklists/event_validation.yaml` - [OWASP Serverless Top 10](https://owasp.org/www-project-serverless-top-10/).
  • Network accessline 141
    - `checklists/event_validation.yaml` - [OWASP Serverless Top 10](https://owasp.org/www-project-serverless-top-10/). - [CWE-770](https://cwe.mitre.org/data/definitions/770.html).
  • Network accessline 142
    - [OWASP Serverless Top 10](https://owasp.org/www-project-serverless-top-10/).
  • Network accessline 143
    - [CWE-770](https://cwe.mitre.org/data/definitions/770.html).

skills/serverless-security/checklists/event_validation.yaml

  • Dangerous shell operationline 21
    rule: "Function does not dynamically import modules / require() / eval() / Function() based on event content"

skills/serverless-security/tests/corpus.json

  • Access to secretsline 19
    [Credential-related source omitted]
  • Dangerous shell operationline 33
    "reason": "Untrusted S3 object key concatenated into os.system with no schema validation, allowing command injection (e.g. key 'a;rm -rf /'). Violates NEVER 'Skip validation of S3/SQS/EventBridge event payloads' and 'Pass user-controlled st

skills/ssrf-prevention/SKILL.md

  • Network accessline 47
    - Re-validate **at every redirect hop**, or disable redirect-following entirely on   fetchers that take user-supplied URLs. An allowed host answering `302` to   `http://169.254.169.254/` is the single most common bypass, and it defeats a ch
  • Network accessline 48
    fetchers that take user-supplied URLs. An allowed host answering `302` to   `http://169.254.169.254/` is the single most common bypass, and it defeats a check   performed only on the URL the user submitted.
  • Network accessline 49
    `http://169.254.169.254/` is the single most common bypass, and it defeats a check
  • Network accessline 83
    by any request path that does not traverse it. - Compare a URL as a **string** — prefix match, `contains`, a regex over the raw text.   Parse it, then compare the parsed host. `https://allowed.example.com@evil.com/`,
  • Network accessline 84
    - Compare a URL as a **string** — prefix match, `contains`, a regex over the raw text.   Parse it, then compare the parsed host. `https://allowed.example.com@evil.com/`,   `https://evil.com/?x=allowed.example.com` and `https://allowed.examp
  • Network accessline 85
    Parse it, then compare the parsed host. `https://allowed.example.com@evil.com/`,
  • Network accessline 86
    `https://evil.com/?x=allowed.example.com` and `https://allowed.example.com.evil.com/`
  • Network accessline 135
    - `rules/ssrf_sinks.json` - `rules/cloud_metadata_endpoints.json` - [OWASP SSRF Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html).
  • Network accessline 136
    - `rules/cloud_metadata_endpoints.json` - [OWASP SSRF Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html). - [CWE-918](https://cwe.mitre.org/data/definitions/918.ht
  • Network accessline 137
    - [OWASP SSRF Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html).
  • Network accessline 138
    - [CWE-918](https://cwe.mitre.org/data/definitions/918.html).
  • Network accessline 139
    - [AWS IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html).
  • Network accessline 140
    - [PortSwigger SSRF](https://portswigger.net/web-security/ssrf).

skills/ssrf-prevention/references/verifying-findings.md

  • Network accessline 27
    | Target | Probe | Real hit | |---|---|---| | **Cloud metadata** | `http://169.254.169.254/latest/meta-data/` | Metadata comes back |
  • Network accessline 28
    |---|---|---| | **Cloud metadata** | `http://169.254.169.254/latest/meta-data/` | Metadata comes back | | **Internal service** | `http://127.0.0.1:6379`, `http://localhost:22` | Service banner or data returns |
  • Network accessline 29
    | **Cloud metadata** | `http://169.254.169.254/latest/meta-data/` | Metadata comes back |
  • Network accessline 30
    | **Internal service** | `http://127.0.0.1:6379`, `http://localhost:22` | Service banner or data returns | | **Redirect bypass** | A URL that `302`s to an internal IP | The server follows it | | **DNS rebinding** | A host that resolves publ

skills/ssrf-prevention/rules/cloud_metadata_endpoints.json

  • Network accessline 4
    "description": "Cloud-provider instance metadata service endpoints and equivalents that must be blocked from user-fetchable URLs.",   "references": [     "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-ser
  • Network accessline 5
    "references": [     "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html",     "https://cloud.google.com/compute/docs/metadata/overview",
  • Network accessline 6
    "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html",
  • Network accessline 7
    "https://cloud.google.com/compute/docs/metadata/overview",
  • Network accessline 8
    "https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service",
  • Network accessline 9
    "https://www.alibabacloud.com/help/en/elastic-compute-service/latest/access-instance-metadata"

skills/ssrf-prevention/rules/ssrf_sinks.json

  • Network accessline 4
    "description": "Per-language HTTP / URL-fetching sinks that, when reached with user-controlled input, constitute SSRF. Group by language family; pair each sink with the wrapped, allowlist-enforcing alternative.",   "references": [     "http
  • Network accessline 5
    "references": [     "https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html",     "https://cwe.mitre.org/data/definitions/918.html"
  • Network accessline 6
    "https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html",
  • Network accessline 7
    "https://cwe.mitre.org/data/definitions/918.html"
  • Network accessline 11
    "language": "python",       "examples": [         "requests.get(url)",
  • Network accessline 12
    "examples": [         "requests.get(url)",         "urllib.request.urlopen(url)",
  • Network accessline 13
    "requests.get(url)",
  • Network accessline 14
    "urllib.request.urlopen(url)",
  • Network accessline 15
    "httpx.get(url)",
  • Network accessline 16
    "aiohttp.ClientSession().get(url)",
  • Network accessline 17
    "Image.open(BytesIO(requests.get(url).content))",
  • Network accessline 18
    "PyPDF2.PdfReader(io.BytesIO(requests.get(url).content))"
  • Network accessline 19
    ],       "safer": "Wrap with a fetch_external(url) helper that calls socket.getaddrinfo, validates the resolved IP against a denylist (RFC1918, 169.254/16, ::/128, fc00::/7, IPv4-mapped IPv6), and connects to the pinned IP with `requests.ge
  • Network accessline 20
    "safer": "Wrap with a fetch_external(url) helper that calls socket.getaddrinfo, validates the resolved IP against a denylist (RFC1918, 169.254/16, ::/128, fc00::/7, IPv4-mapped IPv6), and connects to the pinned IP with `requests.get('https:
  • Network accessline 23
    "language": "javascript",       "examples": [         "fetch(url)",
  • Network accessline 24
    "examples": [         "fetch(url)",         "axios.get(url)",
  • Network accessline 25
    "fetch(url)",
  • Network accessline 26
    "axios.get(url)",         "node-fetch(url)",         "got(url)",
  • Network accessline 27
    "node-fetch(url)",
  • Network accessline 49
    "http.NewRequestWithContext(ctx, ...)"       ],       "safer": "Use a *http.Client with a custom DialContext that calls net.Resolver.LookupIPAddr, checks every IP against the deny list, then dials the first allowed one. Set CheckRedirect to
  • Network accessline 50
    ],       "safer": "Use a *http.Client with a custom DialContext that calls net.Resolver.LookupIPAddr, checks every IP against the deny list, then dials the first allowed one. Set CheckRedirect to re-run validation per hop and CheckRedirect 
  • Network accessline 51
    "safer": "Use a *http.Client with a custom DialContext that calls net.Resolver.LookupIPAddr, checks every IP against the deny list, then dials the first allowed one. Set CheckRedirect to re-run validation per hop and CheckRedirect = ErrUseL

skills/ssrf-prevention/tests/corpus.json

  • Network accessline 5
    {       "id": "image-proxy-raw-fetch",       "text": "app.get('/proxy', async (req, res) => { const resp = await fetch(req.query.url); res.type(resp.headers.get('content-type')).send(Buffer.from(await resp.arrayBuffer())); });",
  • Network accessline 7
    "text": "app.get('/proxy', async (req, res) => { const resp = await fetch(req.query.url); res.type(resp.headers.get('content-type')).send(Buffer.from(await resp.arrayBuffer())); });",
  • Network accessline 11
    {       "id": "image-proxy-guarded",       "text": "const ALLOWED = new Set(['images.example.com', 'cdn.example.com']); app.get('/proxy', async (req, res) => { const u = new URL(req.query.url); if (u.protocol !== 'https:' || !ALLOWED.has(u.
  • Network accessline 13
    "text": "const ALLOWED = new Set(['images.example.com', 'cdn.example.com']); app.get('/proxy', async (req, res) => { const u = new URL(req.query.url); if (u.protocol !== 'https:' || !ALLOWED.has(u.hostname)) return res.status(400).end(); co
  • Network accessline 23
    {       "id": "webhook-guarded",       "text": "const { pinnedAgent } = require('./ssrf-guard'); app.post('/webhook-test', async (req, res) => { const u = new URL(req.body.callback); if (u.protocol !== 'https:') return res.status(400).end()
  • Network accessline 25
    "text": "const { pinnedAgent } = require('./ssrf-guard'); app.post('/webhook-test', async (req, res) => { const u = new URL(req.body.callback); if (u.protocol !== 'https:') return res.status(400).end(); const agent = await pinnedAgent(u.hos
  • Network accessline 29
    {       "id": "link-preview-raw-fetch",       "text": "app.get('/preview', async (req, res) => { const resp = await fetch(req.query.target); res.json({ title: extractTitle(await resp.text()) }); });",
  • Network accessline 31
    "text": "app.get('/preview', async (req, res) => { const resp = await fetch(req.query.target); res.json({ title: extractTitle(await resp.text()) }); });",
  • Network accessline 35
    {       "id": "link-preview-guarded",       "text": "const ALLOWED = new Set(['youtube.com', 'vimeo.com', 'twitter.com']); app.get('/preview', async (req, res) => { const u = new URL(req.query.target); if (!ALLOWED.has(u.hostname.replace(/^
  • Network accessline 37
    "text": "const ALLOWED = new Set(['youtube.com', 'vimeo.com', 'twitter.com']); app.get('/preview', async (req, res) => { const u = new URL(req.query.target); if (!ALLOWED.has(u.hostname.replace(/^www\\./, ''))) return res.status(400).end();
  • Network accessline 44
    "text": "app.get('/proxy', async (req, res) => { const u = new URL(req.query.url); const { address } = await dns.promises.lookup(u.hostname); if (isPrivate(address)) return res.status(400).end(); const resp = await fetch(u); res.send(Buffer
  • Network accessline 45
    "reason": "Address-based check, then fetch(u) resolves the hostname a second time. An attacker-controlled name answers with a public address for the check and a private one for the connect (DNS rebinding, CWE-918). The check must pin the va

skills/supply-chain-security/SKILL.md

  • Network accessline 126
    - `rules/known_malicious.json` — pointer to the relevant   `vulnerabilities/supply-chain/malicious-packages/*.json` data - [Alex Birsan's original dependency confusion writeup](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec6
  • Network accessline 127
    `vulnerabilities/supply-chain/malicious-packages/*.json` data - [Alex Birsan's original dependency confusion writeup](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610). - [SLSA](https://slsa.dev/).
  • Network accessline 128
    - [Alex Birsan's original dependency confusion writeup](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610).
  • Network accessline 129
    - [SLSA](https://slsa.dev/).
  • Network accessline 130
    - [The Update Framework](https://theupdateframework.io/docs/metadata/) — signed metadata, rollback and freshness protection.
  • Network accessline 131
    - [OWASP Top 10 A06](https://owasp.org/Top10/A06_2021-Vulnerable_and_Outdated_Components/).

skills/supply-chain-security/references/ecosystem-controls.md

  • Network accessline 16
    | Ecosystem | Mechanism | Isolation strength | |---|---|---| | **npm / yarn / pnpm** | Scope-to-registry mapping in `.npmrc`: `@yourco:registry=https://npm.internal/` | Strong — the scope resolves from that registry only |
  • Network accessline 17
    |---|---|---| | **npm / yarn / pnpm** | Scope-to-registry mapping in `.npmrc`: `@yourco:registry=https://npm.internal/` | Strong — the scope resolves from that registry only | | **Gradle / Maven** | `exclusiveContent { forRepository { … } f
  • Network accessline 18
    | **npm / yarn / pnpm** | Scope-to-registry mapping in `.npmrc`: `@yourco:registry=https://npm.internal/` | Strong — the scope resolves from that registry only |

skills/supply-chain-security/rules/dependency_confusion.json

  • Network accessline 8
    "ecosystem": "npm",       "description": "Replace 'yourco' with your organization's npm scope; ensure .npmrc routes the scope to the internal registry via `@yourco:registry=https://npm.internal.example.com/`."
  • Network accessline 9
    "description": "Replace 'yourco' with your organization's npm scope; ensure .npmrc routes the scope to the internal registry via `@yourco:registry=https://npm.internal.example.com/`."
  • Network accessline 45
    "config_file": ".npmrc",       "required_lines": [         "@yourco:registry=https://npm.internal.example.com/",
  • Network accessline 46
    "required_lines": [         "@yourco:registry=https://npm.internal.example.com/",         "//npm.internal.example.com/:_authToken=${INTERNAL_NPM_TOKEN}"
  • Network accessline 47
    "@yourco:registry=https://npm.internal.example.com/",
  • Access to secretsline 48
    [Credential-related source omitted]
  • Network accessline 54
    "required_lines": [         "[global]",         "index-url = https://pypi.internal.example.com/simple/",
  • Network accessline 55
    "[global]",         "index-url = https://pypi.internal.example.com/simple/",         "extra-index-url = https://pypi.org/simple/"
  • Network accessline 56
    "index-url = https://pypi.internal.example.com/simple/",
  • Network accessline 57
    "extra-index-url = https://pypi.org/simple/"
  • Network accessline 63
    "GOPRIVATE": "github.com/yourco/*",         "GONOSUMCHECK": "false",         "GOPROXY": "https://proxy.internal.example.com,direct"
  • Network accessline 64
    "GONOSUMCHECK": "false",         "GOPROXY": "https://proxy.internal.example.com,direct"       }
  • Network accessline 65
    "GOPROXY": "https://proxy.internal.example.com,direct"
  • Network accessline 122
    "name": "Birsan dependency confusion (2021)",       "summary": "Researcher Alex Birsan published lookalike packages for internal namespaces of Apple, Microsoft, Tesla, Yelp and 35+ other companies; received code execution callbacks from cor
  • Network accessline 123
    "summary": "Researcher Alex Birsan published lookalike packages for internal namespaces of Apple, Microsoft, Tesla, Yelp and 35+ other companies; received code execution callbacks from corporate networks.",       "references": ["https://med
  • Network accessline 124
    "references": ["https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610"],
  • Network accessline 131
    }   ],   "mitigation_guide": "https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610"
  • Network accessline 132
    ],   "mitigation_guide": "https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610" }
  • Network accessline 133
    "mitigation_guide": "https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610"

skills/supply-chain-security/rules/typosquat_patterns.json

  • Network accessline 181
    "discovered": "2017-08-01",       "attack_type": "credential_harvest",       "references": ["https://blog.npmjs.org/post/163723642530/crossenv-malware-on-the-npm-registry"]
  • Network accessline 182
    "attack_type": "credential_harvest",       "references": ["https://blog.npmjs.org/post/163723642530/crossenv-malware-on-the-npm-registry"]     },
  • Network accessline 183
    "references": ["https://blog.npmjs.org/post/163723642530/crossenv-malware-on-the-npm-registry"]
  • Network accessline 245
    "discovered": "2022-05-10",       "attack_type": "data_exfiltration",       "references": ["https://blog.rust-lang.org/2022/05/10/cve-2022-36113.html"]
  • Network accessline 246
    "attack_type": "data_exfiltration",       "references": ["https://blog.rust-lang.org/2022/05/10/cve-2022-36113.html"]     }
  • Network accessline 247
    "references": ["https://blog.rust-lang.org/2022/05/10/cve-2022-36113.html"]

skills/template-injection/SKILL.md

  • Network accessline 131
    escalate to RCE versus disclosure - `rules/template_injection.json` - [OWASP WSTG — SSTI](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/18-Testing_for_Server-s
  • Network accessline 132
    - `rules/template_injection.json` - [OWASP WSTG — SSTI](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/18-Testing_for_Server-side_Template_Injection). - [PortSw
  • Network accessline 133
    - [OWASP WSTG — SSTI](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/18-Testing_for_Server-side_Template_Injection).
  • Network accessline 134
    - [PortSwigger — Server-Side Template Injection](https://portswigger.net/web-security/server-side-template-injection).
  • Network accessline 135
    - [CWE-1336](https://cwe.mitre.org/data/definitions/1336.html) · [CWE-94](https://cwe.mitre.org/data/definitions/94.html) · [CWE-917](https://cwe.mitre.org/data/definitions/917.html) · [CWE-770](https://cwe.mitre.org/data/definitions/770.ht

skills/template-injection/rules/template_injection.json

  • Network accessline 4
    "description": "Server-side template injection (SSTI) anti-patterns: user input reaching a template compiler, double-render pipelines, sandbox escapes, and template-driven resource exhaustion.",   "references": [     "https://owasp.org/www-
  • Network accessline 5
    "references": [     "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/18-Testing_for_Server-side_Template_Injection",     "https://portswigger.net/web-security/se
  • Network accessline 6
    "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/18-Testing_for_Server-side_Template_Injection",
  • Network accessline 7
    "https://portswigger.net/web-security/server-side-template-injection",
  • Network accessline 8
    "https://cwe.mitre.org/data/definitions/1336.html"

skills/threat-modeling/SKILL.md

  • Network accessline 141
    cannot flag, a filled-in `(asset, boundary, threat, control, owner)` list for one   realistic feature, and the division of labour with the code-level skills - [OWASP Threat Modeling Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheet
  • Network accessline 142
    realistic feature, and the division of labour with the code-level skills - [OWASP Threat Modeling Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html). - [Microsoft STRIDE threat model](https://learn
  • Network accessline 143
    - [OWASP Threat Modeling Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html).
  • Network accessline 144
    - [Microsoft STRIDE threat model](https://learn.microsoft.com/en-us/azure/security/develop/threat-modeling-tool-threats).

skills/threat-modeling/references/design-level-failures.md

  • Access to secretsline 9
    [Credential-related source omitted]

skills/websocket-security/SKILL.md

  • Network accessline 135
    per-framework notes for Socket.IO, SignalR and Phoenix Channels - `rules/websocket_hardening.json` - [OWASP WebSocket Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/WebSocket_Cheat_Sheet.html).
  • Network accessline 136
    - `rules/websocket_hardening.json` - [OWASP WebSocket Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/WebSocket_Cheat_Sheet.html). - [CWE-1385](https://cwe.mitre.org/data/definitions/1385.html) · [CWE-770](https://cwe.m
  • Network accessline 137
    - [OWASP WebSocket Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/WebSocket_Cheat_Sheet.html).
  • Network accessline 138
    - [CWE-1385](https://cwe.mitre.org/data/definitions/1385.html) · [CWE-770](https://cwe.mitre.org/data/definitions/770.html).
  • Network accessline 139
    - [RFC 6455](https://datatracker.ietf.org/doc/html/rfc6455).

skills/websocket-security/references/verifying-findings.md

  • Network accessline 25
    | Class | Probe | Real hit | False positive | |---|---|---|---| | **CSWSH / Origin** | Replay the upgrade with `Origin: https://attacker.example`, carrying the victim's session cookie if cookie auth is in play | The socket reaches OPEN and 
  • Network accessline 26
    |---|---|---|---| | **CSWSH / Origin** | Replay the upgrade with `Origin: https://attacker.example`, carrying the victim's session cookie if cookie auth is in play | The socket reaches OPEN and starts streaming the user's data | The upgrade
  • Network accessline 27
    | **CSWSH / Origin** | Replay the upgrade with `Origin: https://attacker.example`, carrying the victim's session cookie if cookie auth is in play | The socket reaches OPEN and starts streaming the user's data | The upgrade is refused — `4xx

skills/websocket-security/rules/websocket_hardening.json

  • Network accessline 4
    "description": "Hardening defaults for WebSocket / Socket.IO / SignalR / Phoenix Channels endpoints. CORS does not apply to WebSockets — Origin validation must be done explicitly at upgrade time.",   "references": [     "https://cheatsheets
  • Network accessline 5
    "references": [     "https://cheatsheetseries.owasp.org/cheatsheets/WebSocket_Cheat_Sheet.html",     "https://cwe.mitre.org/data/definitions/1385.html",
  • Network accessline 6
    "https://cheatsheetseries.owasp.org/cheatsheets/WebSocket_Cheat_Sheet.html",
  • Network accessline 7
    "https://cwe.mitre.org/data/definitions/1385.html",
  • Network accessline 8
    "https://datatracker.ietf.org/doc/html/rfc6455"

skills/websocket-security/tests/corpus.json

  • Network accessline 11
    {       "id": "origin-allowlist-enforced",       "text": "const { WebSocketServer } = require('ws');\nconst http = require('http');\nconst ALLOWED = new Set(['https://app.example.com']);\nconst server = http.createServer();\nconst wss = new
  • Network accessline 13
    "text": "const { WebSocketServer } = require('ws');\nconst http = require('http');\nconst ALLOWED = new Set(['https://app.example.com']);\nconst server = http.createServer();\nconst wss = new WebSocketServer({\n  server,\n  verifyClient: (i
  • Access to secretsline 25
    [Credential-related source omitted]

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.

Some files could not be read; the facts below still hold.

Signal confidence: 469 facts

and 419 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativePath .claude/workflows/secure-vibe-audit.js.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorNativePath dist/cursor-rules/.cursor/rules/api-security.mdc.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md dist/agent-skills/.agents/skills/api-security/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md dist/agent-skills/.agents/skills/api-security/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md dist/agent-skills/.agents/skills/api-security/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.