dcyfr-security
CodeQL suppressions, security vulnerability troubleshooting, and security best practices
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
What I do
I guide security practices and CodeQL false positive suppression:
- CodeQL suppressions with LGTM syntax
- Security vulnerability troubleshooting (SSRF, CWE-918)
- False positive patterns and verification
- Security testing patterns
When to use me
✅ Use this skill when:
- Suppressing CodeQL false positives
- Investigating security alerts
- Implementing security fixes
- Reviewing security-sensitive code
❌ Don't use this skill for:
- General code review (use dcyfr-validation)
- Performance issues (separate concern)
- Non-security bugs
CodeQL Suppression Syntax
Basic Suppression
// lgtm[js/path-injection]
const filePath = path.join(baseDir, userInput);
With Justification
// lgtm[js/sql-injection]: Input validated by schema
const query = `SELECT * FROM users WHERE id = ${userId}`;
Multiple Alerts
// lgtm[js/path-injection,js/sql-injection]
const result = await processInput(userInput);
Common False Positives
1. Path Injection (Safe)
// lgtm[js/path-injection]: userInput validated against allowlist
const filePath = path.join(PUBLIC_DIR, userInput);
2. SQL Injection (Parameterized)
// lgtm[js/sql-injection]: Using parameterized query
await db.query('SELECT * FROM users WHERE id = $1', [userId]);
3. XSS (React Auto-Escapes)
// lgtm[js/xss]: React auto-escapes JSX content
<div>{userContent}</div>
Security Testing Patterns
API Endpoint Security Test
describe('/api/secure-endpoint', () => {
it('rejects unauthorized requests', async () => {
const response = await fetch('/api/secure-endpoint');
expect(response.status).toBe(401);
});
it('validates input', async () => {
const response = await fetch('/api/secure-endpoint', {
method: 'POST',
body: JSON.stringify({ malicious: '<script>alert(1)</script>' }),
});
expect(response.status).toBe(400);
});
});
SSRF Prevention
// ✅ CORRECT: Validate URLs before fetching
const allowedDomains = ['api.trusted.com'];
const url = new URL(userProvidedUrl);
if (!allowedDomains.includes(url.hostname)) {
throw new Error('Invalid domain');
}
const response = await fetch(url.toString());
Related Documentation
-
CodeQL suppressions:
.github/agents/patterns/CODEQL_SUPPRESSIONS.md -
Security troubleshooting:
.github/agents/patterns/SECURITY_VULNERABILITY_TROUBLESHOOTING.md
Approval Gates
Security compliance is STRICT (hard block):
- ❌ Cannot suppress without justification
- ❌ Cannot merge with HIGH/CRITICAL alerts
- ✅ Must verify suppressions are valid
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!